Automated macOS virtual machines for Tart using HashiCorp Packer, with provisioning via shell script or Ansible.
Important
This project bypasses
Setup Assistant on macOS 26 and below, which may have unexpected side effects. Not indended for
production use VZMacGuestProvisioningOptions mechanism.
Please make sure to read and accept the license agreement of the macOS version you're installing.
- Automatic IPSW download handling: Specify version to download the correct IPSW file
- Fully unattended installation: Automated macOS setup without Setup Assistant interaction
- System Integrity Protection (SIP) management: Optional automated SIP disabling during setup
- Customizable resources: Configure CPU count, memory size, and disk size
- Minimal provisioning: Default minimal provisioning for base images
- Passwordless
sudoenabled - Screensaver, sleep, and lock screen disabled
- SSH and VNC services enabled
- Python installed (when Ansible is used)
- Passwordless
- Optional Ansible provisioning: Bring your own Ansible playboooks
brew install hashicorp/tap/packer
brew install openai/tools/tart
brew install ansible # Optional
packer init macospacker build -parallel-builds=1 -var version=26 macospacker build -parallel-builds=1 \
-var version=26 \
-var cpu_count=8 \
-var memory_size=16 \
-var disk_size=100 \
-var recovery_partition=relocate \
-var username=developer \
-var password=hunter2 \
macospacker build -parallel-builds=1 \
-var version=26 \
-var disable_sip=true \
macospacker build -var -parallel-builds=1 version=27-0 macospacker build -parallel-builds=1 \
-var version=26 \
-var ansible_playbook=playbook.yml \
macospacker build -parallel-builds=1 \
-var version=26 \
-var provisioning_script=/path/to/custom-setup.sh \
macos