How to Sync MacOS Applications + Preferences across multiple Macs without OS X Server?
Will the following work? If not, can someone propose better alternaives to solve this problem?
Summary problem: I want to sync multiple MacBook Air's, Pro's and possibly Mini's with the same user-account info, for only one account--call it myuser
. All systems will have the same MacOS major rev. eg: they're all 10.7 or 10.8 or higher. I do NOT want to employ OS X Server for the synchronizing.
Summary, proposed solution: git-sync the Preferences and /User/myuser
directory, rsync the Application directories, and use known-working mechanisms (Dropbox, IMAP) to sync everything else.
Details.
Migration Assistant is unreliable for complete copy/sync per this and this and my personal experience. ChronoSync, per this discussion looks interesting, but I don't know exactly what it's doing for Preferences... and I want to exactly what's going on. I've also restored TimeMachine backups and found they do not replicate the environment I backed up (huge disappointment). I'm an experienced system admin on non-MacOS sytems, so consider me a control freak.
I've used git to sync Terminal.app/shell settings in /User/myuser
and Thunderbird profile(s) across multiple Macs (git branching for diff Thunderbird profiles on different Macs if/as need be provides useful flexibility). Despite the lack of depth of git's file-metada management, this has worked well. I'd like to git-sync (to a "central-repository" server/service like Bitbucket) the following directories across my Macs, employing branches as needed/wanted for unique customizations:
/Library/Preferences
/Library/PreferencePanes
~/Library/Preferences
~/Library/PreferencePanes
(Everything else in ~/Library
and /Library
appears to be uninmportant or automatically regenerated.)
Then I plan to rsync the following together (git is less useful here due to ease of recreating installed applications plus less practical due to size of /Applications
):
/Applications
~/Applications
I realize I may need to close all pertinent applications+processes in order to properly sync the Preferences and Applications spaces and avoid running-process locks and related problems.
I'm not as familiar with any Preference-management-magic that might be in auto-deployment systems like Absolute Manage, Casper, Munki, Sikuli, Salt and similar tools. Would love to know if there's Preference-management capability/knowledge/know-how in these tools, and if so, how to reuse said knowledge. Each of the said tools seem to address a broader scope of requirements and present a higher barrier to entry/employment. I'd rather just start with my very easy to setup git-based method on ~/Library/Preferences
(and the like) going.
All of the other directories on these systems--particularly in /User/myuser
--are being synchronized via other means, like Dropbox, IMAP email, and similar, already-proven methods like rsync. I'm less certain rsync will work for copying /Applications
, hence the specific call-out above.
Solution 1:
Seems like ChronoSync could help in a limited way. The support pages have warnings on syncing ~/Library
. See ChronoSync - Syncing your Home folder.
You could try Unison for everything instead of multiple tools and approaches (one caveat is that Unison was last updated in 2009; it's source is available under GPL though).
References:
Unison Frequently Asked Questions (FAQ)
Using Unison on Specific Operating Systems