Don't fall in love with your Mac—automate it!

Ah, the feeling of unpacking a brand new computer:

16 inch 2019 MacBook Pro with Intel core i9 9th gen processor - macOS Setup screen

In my case, I'm actually selling the 16" MacBook Pro pictured above and replacing it with a 13" MacBook Air and 10 Gigabit Mac mini.

Once you turn on the new Mac, what's next? Do you:

  1. Wait 6+ hours for a Time Machine restore (you do have a backup, right?) or use Migration Assistant to move all your old files and cruft from your old Mac?
  2. Manually install apps and click through tons of preference panes to set it up to your liking?
  3. Use a completely automated process like mac-dev-playbook to build everything fresh using mas, homebrew, and a tool like Ansible, so it's in a pristine state, with all your data and apps configured within an hour or two?

I choose the latter. And as a bonus, I can run the automation on both my new Macs frequently, to keep their configuration and app layout in sync!

I just posted a video about the entire process to my YouTube channel:

As I said in the video, you should really treat your workstation like cattle, not a pet—my goal is to be able to be 100% productive with a new computer in less than a day. Sometimes you don't even get the choice, if your computer dies or gets stolen!

If you want to see how to use the open source playbook, check out the mac-dev-playbook README.

It took about one hour before all my apps and configuration were present, and only a few more minutes for the initial Dropbox data sync to complete. After that, Photos slowly downloaded my entire library in the background, and all the rest of my work is open source and available on GitHub and a private mirror, so I just ran a shell script to clone all my repositories to my ~/Development folder.

Less than a full day to fully transition to a new Mac mini and format my old MacBook Pro—all done while recording the video above!

There are other tools focused on managing 'fleets' of Macs (like Jamf and other MDM tools), but Ansible's a pretty robust tool for managing one or more Macs, and it and the Mac Dev Playbook are nice and free!


Which models of the Mac Mini and MacBook Air did you choose? I know there are a few different specs.

I got the 10 Gbps 16 GB RAM 2 TB SSD Mini, since it'll be may main working computer. I need all the horsepower I can get, and I almost held off long enough for the hopefully-32+ GB mini with a faster processor (we'll see if Apple updates it tomorrow at WWDC!).

The Air is the 16 GB RAM 512 GB SSD model, which can't hold all my data, but has enough that I can get all the work I need to get done on the road done efficiently. Again, wish I could bump it to 32 GB of RAM, but so far so good with 16 GB, as long as I don't run tens of Docker containers at a time!

Yeah, it's a bit annoying that M1 doesn't support more than 16GB RAM. Have you been able to run things like VirtualBox on M1? I know that lots of people have had issues with doing virtualization as it's on ARM64 like the pi, which lots of software doesn't support.

I did consider getting an M1 Mac Mini, but the lack of proper virtualization was a deal breaker for me - most of what I do needs proper virtual machines.

Hi Jeff,

Good stuff here, ready to clone the repo!
I want to do follow your backup strategy, but need to buy the NAS first, what kind of NAS did you get, what type of Disks?

Thank you.

I got the m1 air (base model) and im waiting on linux to be fully supported on the stable channels...

... dunno you but macOS is driving me crazy.

I'm replacing my "early 2011" MBP soon and want to follow your advice from your video, and leave behind old, unused or redundant stuff. So I don't want to use TimeMachine or Migration Assistant. Getting my files to my new machine won't be a problem (Debian server on the network with SMB shares), but I'd like to know the best way to get my email copied across, including address book. Can you offer suggestions for that?

For my own needs, I use iCloud and Fastmail for my mail accounts, with SMTP. So all my mail is still stored on the server (that's my 'source of truth' for it). Copying across local mailboxes is a bit more complicated.

Ah, FastMail, I've had good experience with them in the past when I was the IT guy for a previous employer. I've been meaning to set it up for my own domain for a while, maybe it's time to bite the bullet. Thank you for your reply.


Hi Jeff,

I love your playbook for automating a Mac installation. Quick question, I see that you are installing Vagrant. How are you using it on your M1 without Virtualbox (there is no support yet as fas as I was able to find).

I've been using Docker for virtualization on my M1 macs (though it doesn't do the same things as VirtualBox/Vagrant...). I still remotely connect to a PC and an Intel Mac sometimes when I need to do certain testing that needs features provided by VirtualBox. So far there isn't a good VM system that runs native on M1 that can do all the things I did with VirtualBox :(