The Mac/Bento templates use Tim Sutton's amazingly awesome os-vm-templates project to prepare a .dmg
that can perform an unattended install of Mac OS X 10.7 through to 10.11. You'll need a copy of the Mac OS X .app
on locally on disk, so we'll assume that it's installed under /Applications
from the App Store.
Clone the os-vm-templates project and run the prepare_iso.sh
program to produce the disk image.
git clone https://github.com/timsutton/osx-vm-templates.git
cd osx-vm-templates
sudo prepare_iso/prepare_iso.sh "/Applications/Install OS X El Capitan.app" out
Make note of the md5 hash and output filename and path. We'll need this for the next step.
Now we'll clone the Bento repo and write out a small JSON file that the underlying template will use to set required variables, namely the iso_checksum
and iso_url
. In this example we're using VMware Fusion on a Mac workstation.
git clone https://github.com/chef/bento.git
cd bento
cat <<EOF > macosx-10.11.variables.json
{
"iso_checksum": "40acb2285174690e5e9c04b8b4e03179",
"iso_url": "file:///path/to/OSX_InstallESD_10.11.5_15F34.dmg"
}
EOF
./bin/bento build -o vmware-iso macosx-10.11
If everything goes to plan (say an hour or so later), you should have a ./builds/
directory containing a JSON metadata file and Vagrant box image ready to be imported. Here's an example of a box that I recently built:
> ls -l ./builds
./builds/macosx-10.10-2.1.20160526163052.git.6fdd2e497a8fc2999c4195bab9f3f5127dd70d6a.metadata.json
./builds/macosx-10.10-2.1.20160526163052.git.6fdd2e497a8fc2999c4195bab9f3f5127dd70d6a.vmware.json
> cat ./builds/macosx-10.10-2.1.20160526163052.git.6fdd2e497a8fc2999c4195bab9f3f5127dd70d6a.metadata.json
{
"name": "macosx-10.10",
"version": "2.1.20160526163052",
"build_timestamp": "20160526163052",
"git_revision": "6fdd2e497a8fc2999c4195bab9f3f5127dd70d6a",
"box_basename": "macosx-10.10-2.1.20160526163052.git.6fdd2e497a8fc2999c4195bab9f3f5127dd70d6a",
"template": "macosx-10.10",
"providers": [
{
"name": "vmware_desktop",
"file": "macosx-10.10-2.1.20160526163052.git.6fdd2e497a8fc2999c4195bab9f3f5127dd70d6a.vmware.box",
"checksum_type": "sha256",
"checksum": "4ec1188ba5827c5d2edae930c6b90b4fe8f683cb1084a7b87a82546752e1ff6e"
}
]
}