ReleaseEngineering/PuppetAgain/Base Images

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.

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
  • 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
  • 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