-
Notifications
You must be signed in to change notification settings - Fork 0
Home
BootstrapMate is a bootstrapping tool for Mac device provisioning that downloads and
installs packages during Remote Management enrollment in Setup Assistant or after user
login. It reads one document — the manifest — from an HTTPS URL, and runs the items in
that manifest in three fixed stages: preflight, setupassistant, userland. It is a
one-shot provisioning tool, not an ongoing configuration manager: its job is to get the
first layer of software onto a new Mac and then hand the machine over to Munki.
Mac administrators who enroll devices through Automated Device Enrollment (ADE/DEP) and
need software on the machine before, or immediately after, the first user logs in. You
should already be comfortable with MDM configuration profiles, installer, pkgutil
and shell scripting. BootstrapMate assumes you have somewhere to host a manifest and
some packages over HTTPS, and an MDM that can install a package and deliver a profile.
Read these in order the first time:
- Getting Started — obtain the package, author a one-item manifest, install BootstrapMate and watch a real run in the log.
- How It Works — the exact execution order of a run, and the security context of each step.
- Manifest Reference — every manifest key, its type, and its default.
- Troubleshooting and Gotchas — read this before you deploy to a fleet, not after. Several documented-looking settings do nothing, and the reasons are all in there.
If you are arriving from Munki or from InstallApplications, start at the Glossary instead: BootstrapMate's "manifest" and "preflight" do not mean what those words mean in Munki.
A separate implementation of the same idea exists for Windows, with the same page names in its wiki, at https://github.com/bootstrapmate/bootstrapmate-windows/wiki. Behaviour differs where the platforms differ — Setup Assistant versus the Enrollment Status Page (ESP), Munki versus Cimian as the handoff target — so check the macOS page before assuming the two are identical.
Bug reports, questions and feature requests go to GitHub Issues on this repository. When
you file one, include the session log from /Library/Managed Bootstrap/logs/ and the
contents of /Library/Managed Bootstrap/status.json; almost every question about a run
is answered by those two files.