Skip to content

Latest commit

Β 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ₯§ Tart Image Bakery

Automated macOS virtual machines for Tart using HashiCorp Packer, with provisioning via shell script or Ansible.

image-bakery

Important

This project bypasses Setup Assistant on macOS 26 and below, which may have unexpected side effects. Not indended for production use ⚠️ On macOS 27 it uses the official VZMacGuestProvisioningOptions mechanism.

Please make sure to read and accept the license agreement of the macOS version you're installing.

Features

  • 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 sudo enabled
    • Screensaver, sleep, and lock screen disabled
    • SSH and VNC services enabled
    • Python installed (when Ansible is used)
  • Optional Ansible provisioning: Bring your own Ansible playboooks

Installation

brew install hashicorp/tap/packer
brew install openai/tools/tart
brew install ansible # Optional
packer init macos

Usage

Basic VM creation

packer build -parallel-builds=1 -var version=26 macos

Custom VM configuration

packer 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 \
  macos

Disable SIP

packer build -parallel-builds=1 \
  -var version=26 \
  -var disable_sip=true \
  macos

Pre-release macOS versions

packer build -var -parallel-builds=1 version=27-0 macos

With Ansible provisioning

packer build -parallel-builds=1 \
  -var version=26 \
  -var ansible_playbook=playbook.yml \
  macos

Override provisioning script

packer build -parallel-builds=1 \
  -var version=26 \
  -var provisioning_script=/path/to/custom-setup.sh \
  macos

About

Not Your Grandma's Pies πŸ‘΅πŸ»

Resources

Stars

20 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages