Last active
October 4, 2023 14:15
-
-
Save YOU54F/bb8125922bfcdcc5f6d42a62fca21a03 to your computer and use it in GitHub Desktop.
big sur packer template
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
packer { | |
required_plugins { | |
tart = { | |
version = ">= 1.2.0" | |
source = "github.com/cirruslabs/tart" | |
} | |
} | |
} | |
source "tart-cli" "tart" { | |
# You can find macOS IPSW URLs on various websites like https://ipsw.me/ | |
# and https://www.theiphonewiki.com/wiki/Beta_Firmware/Mac/13.x | |
from_ipsw = "https://updates.cdn-apple.com/2021FallFCS/fullrestores/071-97388/C361BF5E-0E01-47E5-8D30-5990BC3C9E29/UniversalMac_11.6_20G165_Restore.ipsw" | |
vm_name = "big-sur-11-0-1-vanilla" | |
cpu_count = 4 | |
memory_gb = 8 | |
disk_size_gb = 40 | |
ssh_password = "admin" | |
ssh_username = "admin" | |
ssh_timeout = "120s" | |
boot_command = [ | |
# hello, hola, bonjour, etc. | |
"<wait60s><spacebar>", | |
# Language | |
"<wait30s><enter>", | |
# Select Your Country and Region | |
"<wait30s>united states<leftShiftOn><tab><leftShiftOff><spacebar>", | |
# Written and Spoken Languages | |
"<wait10s><leftShiftOn><tab><leftShiftOff><spacebar>", | |
# Accessibility | |
"<wait10s><leftShiftOn><tab><leftShiftOff><spacebar>", | |
# Data & Privacy | |
"<wait10s><leftShiftOn><tab><leftShiftOff><spacebar>", | |
# Migration Assistant | |
"<wait10s><tab><tab><tab><spacebar>", | |
# Sign In with Your Apple ID | |
"<wait10s><leftShiftOn><tab><leftShiftOff><leftShiftOn><tab><leftShiftOff><spacebar>", | |
# Are you sure you want to skip signing in with an Apple ID? | |
"<wait10s><tab><spacebar>", | |
# Terms and Conditions | |
"<wait10s><leftShiftOn><tab><leftShiftOff><spacebar>", | |
# I have read and agree to the macOS Software License Agreement | |
"<wait10s><tab><spacebar>", | |
# Create a Computer Account | |
"<wait10s>admin<tab><tab>admin<tab>admin<tab><tab><tab><spacebar>", | |
# Enable Location Services | |
"<wait10s><leftShiftOn><tab><leftShiftOff><spacebar>", | |
# Are you sure you don't want to use Location Services? | |
"<wait10s><tab><spacebar>", | |
# Select Your Time Zone | |
"<wait10s><tab>UTC<enter><leftShiftOn><tab><leftShiftOff><spacebar>", | |
# Analytics | |
"<wait10s><tab><spacebar><leftShiftOn><tab><leftShiftOff><spacebar>", | |
# Screen Time | |
"<wait10s><tab><spacebar>", | |
# Siri | |
"<wait10s><tab><spacebar><leftShiftOn><tab><leftShiftOff><spacebar>", | |
# Choose Your Look | |
"<wait10s><leftShiftOn><tab><leftShiftOff><spacebar>", | |
# Enable Voice Over | |
"<wait10s><leftAltOn><f5><leftAltOff><wait5s>v", | |
# Now that the installation is done, open "System Preferences" | |
"<wait10s><leftAltOn><spacebar><leftAltOff>System Preferences<enter>", | |
# Navigate to "Sharing" | |
"<wait10s>sharing<enter>", | |
# Enable Screen Sharing | |
"<wait10s><tab><tab><tab><tab><spacebar>", | |
# Enable Remote Login | |
"<wait10s><down><down><down><down><spacebar><tab><tab><spacebar>", | |
# Disable Voice Over | |
"<leftAltOn><f5><leftAltOff>", | |
] | |
// A (hopefully) temporary workaround for Virtualization.Framework's | |
// installation process not fully finishing in a timely manner | |
create_grace_time = "30s" | |
} | |
build { | |
sources = ["source.tart-cli.tart"] | |
provisioner "shell" { | |
inline = [ | |
// Enable passwordless sudo | |
"echo admin | sudo -S sh -c \"echo 'admin ALL=(ALL) NOPASSWD: ALL' | EDITOR=tee visudo /etc/sudoers.d/admin-nopasswd\"", | |
// Enable auto-login | |
// | |
// See https://github.com/xfreebird/kcpassword for details. | |
"echo '00000000: 1ced 3f4a bcbc ba2c caca 4e82' | sudo xxd -r - /etc/kcpassword", | |
"sudo defaults write /Library/Preferences/com.apple.loginwindow autoLoginUser admin", | |
// Disable screensaver at login screen | |
"sudo defaults write /Library/Preferences/com.apple.screensaver loginWindowIdleTime 0", | |
// Prevent the VM from sleeping | |
"sudo systemsetup -setdisplaysleep Off", | |
"sudo systemsetup -setsleep Off", | |
"sudo systemsetup -setcomputersleep Off", | |
// Launch Safari to populate the defaults | |
"/Applications/Safari.app/Contents/MacOS/Safari &", | |
"sleep 3", | |
"kill -9 %1", | |
// Enable Safari's remote automation and "Develop" menu | |
"sudo safaridriver --enable", | |
"defaults write com.apple.Safari.SandboxBroker ShowDevelopMenu -bool true", | |
"defaults write com.apple.Safari IncludeDevelopMenu -bool true", | |
// Disable screen lock | |
// | |
// Note that this only works if the user is logged-in, | |
// i.e. not on login screen. | |
"sysadminctl -screenLock off -password admin", | |
] | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment