ReleaseEngineering/PuppetAgain/Base Images
Base images are OS/hardware-specific. In some cases, we can leverage existing installers; in others, we must use snapshots of installed systems. In either case, the idea is to get a minimal system set up to run puppetize.sh, which will take care of getting a certificate and running puppet in a loop until it succeeds.
See Puppetization Process for how a base image becomes a running instance.
Contents
CentOS 6.x with Kickstart
The bulk of a kickstart script is available in setup. Run 'make' to create the script. The top section will need a few site-specific modifications. Most of the action is in the %post section, which:
- looks for PUPPET_PASS on the kernel command line, and stores it in /root/deploypass
- installs minimal packages
- Using a possibly site-specific yum-repo location (under http://repos/repos/)
- installs puppetize.sh and sets it to run on boot.
The same script supports both i386 and x86_64 ISAs; the determining factor is the kernel used to run the installer.
Ubuntu with Kickstart
Ubuntu is very similar to CentOS. While it doesn't use Anaconda, it reads a kickstart profile similar to, but not exactly like, that for CentOS. Beyond those minor differences, it does the same things:
- looks for PUPPET_PASS on the kernel command line, and stores it in /root/deploypass
- installs some repos and minimal packages
- installs puppetize.sh and sets it to run on boot.
The same script supports both i386 and x86_64 ISAs; the determining factor is the kernel used to run the installer.
Mac OS X 10.9 - Mavericks
Reproducing with VMWare Fusion
- Download OS X Mavericks from the app store, but do not install it
- Using disk utility, create a new, 8GB DMG file partitioned as a CD/DVD
- Launch Terminal to show hidden files and relaunch the Finder using this defaults command string:
defaults write com.apple.Finder AppleShowAllFiles TRUE;\killall Finder;\say Files Revealed
- Go to the /Applications/ folder to locate the “Install OS X 10.9 Developer Preview.app” file
- Right-click and choose “Show Package Contents”, then open “Contents” and open “SharedSupport”
- Double-click to mount “InstallESD.dmg”
- Open the mounted ‘OS X Install ESD’ image, and right-click “BaseSystem.dmg” choosing “Open” to mount the image (BaseSystem.dmg is invisible by default, thus why invisible files must be made visible in the earlier step)
- Go back to Disk Utility, then select “BaseSystem.dmg” from the sidebar and then click the “Restore” tab
- With “Source” set to “BaseSystem.dmg”, set “Destination” to the volume in the empty DMG by dragging the Untitled Volume in the blang DMG, then click “Restore” to begin – confirm that contents of the drive will be erased
- When finished, go to Finder and navigate within the newly created USB drive or dmg image to System > Installation > and delete the file (alias) located here named “Packages” – keep this window open
- Go back to the ‘OS X Install ESD’ mounted drive, and drag & drop the “Packages” folder into the /System/Installation/ directory you just deleted the Packages alias from, let this large folder copy
- Once that Packages folder is finished copying to the drive, unmount everything.
- Set up a new VM to boot from DVD, and point the DVD drive to your new image
- Follow the install steps until it begins installing and reboots. You may have to shut down, remove the DVD, and re-start.
- Accept the defeault language and keyboard, skip logging with an Apple ID, and agree
- Create a new user named 'Administrator' with the kickstart password
- uncheck "Require password to unlock screen", "Set time zone..", and "Send Diagnostics.."
- Accept the default (Cupertino) timezone
- Don't register the system
- Wait a while, and you'll end up in the Finder
- Open System Preferences -> Sharing
- Enable:
- Screen Sharing
- Remote Login
- Enable:
- Open System Preferences -> Enery Saver
- Move Computer sleep slider to Never
- Move Disply sleep slider to Never
- Disable:
- put hard disks to sleep when possible
- Allow power button to put computer to sleep (doesn't seem to be present, at least in Fusion)
- Enable:
- Wake for network access
- Shut down
- ..and capture
Capturing from VMWare Fusion
- Shut down the VM
- Duplicate the VM's .vmdk in Finder
- Add a new, existing hard disk to the VM, pointing it at the duplicate
- Boot the VM
- Fire up Disk Utility within the VM
- Click on the second "Mac OS X" hard drive
- File -> New -> Image from "Mac OS X"
Mac OS X 10.8 (12A269) - Mountain Lion
The current base image is built from installing 10.7 Lion via the recovery boot option (cmd + R) and then upgrading to 10.8 Mountain Lion through the App Store. You will need to log in to the apple developer site and redeem OS X Mountain Lion under your credentials
- Using a R5 Mac Mini, boot into OS X Lion Recovery mode
Hold down command + R during the boot process
- Once in recovery mode; launch the disk utility and remove any software raid configuration
- Erase all disks. This partitions and formats all disks
- Close disk utility and launch lion osx recovery from the menu
- Go get coffee and take a nap
- Once the recovery is complete, the system will reboot
At this point the system will have a fresh install of 10.7 OS X Lion
- walk through the setup screen and create a default user
- default user should be 'administrator' using the current releng root/admin kickstart password
- skip all of the apple account registration screens
- At the login screen, use the 'administrator' credentials that were entered earlier
- Launch the App store using your apple developer credentials
- Search 'os x mountain lion'
- Click download under OS X Mountain Lion
- Make sure to sign out of the app store once the download is complete
- Once the download is complete, launch the OS X Mountain Lion installer and proceed through the setup process
- Once installed, the system will reboot
The system is now upgraded and running OS X 10.8 Mountain Lion
- At the login screen, use the 'administrator' credentials that were entered earlier
- Open System Preferences -> Sharing
- Disable:
- Remote Management
- Enable:
- Screen Sharing and Remote Login
- Disable:
- Open System Preferences -> Enery Saver
- Move Computer sleep slider to Never
- Move Disply sleep slider to Never
- Disable:
- put hard disks to sleep when possible
- Allow power button to put computer to sleep
- Enable:
- Wake for network access
- Capture the image for Deploy Studio
- Integrate into the workflows to image 10.8 systems
Mac OS X Server 10.7.2 (11C74) - Lion
- Install OS X 10.7.2 on an r4 or r5 mini
- walk through the setup screen and create a default user
- default user should be 'administrator' using the current releng root/admin kickstart password
- skip all of the apple account registration screens
- At the login screen, use the 'administrator' credentials that were entered earlier
- Open System Preferences -> Sharing
- Enable Screen Sharing and Remote Login
- Open System Preferences -> Enery Saver
- Move Computer sleep slider to Never
- Move Display sleep slider to Never
- Capture the image for Deploy Studio
- Integrate into the workflows to image 10.7.2 systems
Mac OS X 10.6.8 (10K549) - Snow Leopard
- Install OS X 10.6.4 on an r4 mini from disk.
- walk through the setup screen and create a default user
- default user should be 'administrator' using the current releng root/admin kickstart password
- skip all of the apple account registration screens
- At the login screen, use the 'administrator' credentials that were entered earlier
- Open System Preferences -> Sharing
- Enable Screen Sharing and Remote Login
- Open System Preferences -> Enery Saver
- Move Computer sleep slider to Never
- Move Display sleep slider to Never
- Apply the 10.6.8 update.
- Capture the image for Deploy Studio
- Integrate into the workflows to image 10.8.6 systems