macOS unattended install

I know how to create a bootable USB drive from which I can install macOS.

However, the usual macOS installer is interactive, I can't just plug in the installation media and let it do its work. The setup assistant will ask for things like country, computer name, user name, password, wifi settings, etc.

Can I somehow preconfigure the installation media so that it would complete the entire process without any user interaction?


Solution 1:

The Apple macOS installer doesn't read settings so people that require a scripted setup add post install scripts or a full fledged MDM to push configuration profiles. You can pick apart the vendor install and roll a combined package - createOSXinstallPkg - but 10.12.4 changes may limit the options there going forward.

In the end, your solution for this varies according to your scale and the cost to afford user interaction.

  • 5 installs typically you make an image or use ssh / Apple Remote Desktop to script and push out customizations
  • 50 installs you might use a tool like createOSXinstallPkg or server.app and profile manager
  • 500 to 5000 installs set up an MDM like munki or jamf pro.

Organizations are successfully deploying "zero touch" solutions but that means IT doesn't have to touch the os - end users still need to initiate and handle some subset of the default graphical / interactive steps. Many like iCloud, diagnostic settings, location and Siri can be preconfigured or automated but not everything.

Solution 2:

This is hard to do without imaging or management utilities, or both. Fortunately there is a free one called DeployStudio which can help you set workflows for laying a base image (full image or thin), run scripts, install packages, etc. You'll still have to do a bunch of research and testing to get things exactly how you want.

To get you started... iCloud and diagnostic prompts are stored in com.apple.SetupAssistant.plist. You'll have to change the keys in both the user template, and in all the user home folders which have this file (which also has to be done after each minor update). So a launchdaemon would be the easiest way of setting these automatically on every boot. You can kind of get the idea from here : https://www.jamf.com/jamf-nation/discussions/17622/suppress-icloud-and-diagnostic-prompts-on-el-capitan-upgrade