DeployStudio
Third-party company and product names mentioned herein are trademarks of their respective companies. Mention of third-party products is for informational purposes only and constitutes neither an endorsement nor a recommendation. Apple assumes no responsibility with regard to the performance of these products.
Table of Contents Overview DeployStudio
Requirements Hardware Software
Tools DeployStudio Server Repository DeployStudio Server System Preference DeployStudio Assistant DeployStudio Admin DeployStudio Runtime
Setup OS X Server Services Users, Groups and Shares Installing DeployStudio Creating a NetBoot Set
Imaging and Deploying Creating OS X Disk Images – Unicast Creating Boot Camp Disk Images – Unicast Creating OSX/Boot Camp Disk Images – Multicast Deploying OS X – Unicast Deploying OS X/Boot Camp – Unicast Deploying OSX/Boot Camp – Multicast DeployStudio
iii iii 1 1 1 3 3 3 3 3 4 5 5 5 6 9 11 11 12 13 13 14 15 i
Appendix A: Resources
17
DeployStudio Quick Install Guide
17
DeployStudio Architecture
17
DeployStudio Wiki
17
Understanding Multicast Restore
17
NetBoot Across Subnets
17
Understanding and Troubleshooting the NetBoot Process
17
WinClone
17
Appendix B: Troubleshooting
DeployStudio
18
ii
Overview DeployStudio DeployStudio is a multi–OS client/server imaging system. This client/server system can reside on something as portable as a thumb drive or can scale to a high–performance distributed Xserve/RAID environment. What is unique about DeployStudio is that it maintains a database of all computers, imaging workflows, images and scripts that can be deployed. This allows for on-the-fly changes to the live imaging environment, without having to touch the NetBoot set. The other unique feature of DeployStudio is that most tasks are performed via NetBoot, i.e. image creation and image deployment.
DeployStudio
iii
Requirements Hardware • Intel Xserve • External USB or Firewire drive – optional
Software • DeployStudio current nightly build • OS X Server 10.5 or later • Directory Service (Local, Open Directory or Active Directory) • AFP or CIFS • NetBoot • NFS
DeployStudio
1
Tools DeployStudio Server Repository This is a local folder or network share point where DeployStudio stores and retrieves disk images, packages, scripts, logs and all the databases (computers and workflows).
DeployStudio Server System Preference DeployStudio Server System Preference panel provides the ability to start/stop the DeployStudio Server. This panel also displays the current state of the server. The DeployStudio Assistant can be accessed from this system preference panel.
DeployStudio Assistant DeployStudio Assistant provides access to four configuration functions Setup a DeployStudio Server – This option sets up the DeployStudio Server and starts the server. Setup a DeployStudio PC on this computer – This option enables basic imaging support for PCs equipped with a compatible PXE2.0 Ethernet interface and a BIOS with LAN boot. Create a DeployStudio NetBoot set – This option creates a NetBoot set using the OS from the local hard drive. DeployStudio Runtime is auto-embedded into the NetBoot set. Create a DeployStudio bootable external drive (USB & Firewire) – This option sets up the DeployStudio environment to run from removable media (USB or Firewire).
DeployStudio Admin DeployStudio Admin is the heart of the DeployStudio ecosystem. There are five areas that make up DeployStudio Admin Activity – This area displays event information for the current DeployStudio Admin session. Computers – This area provides a database of computers that have been imported from a foreign source, such as an ARD export or a CSV file, or have been previously restored with DeployStudio. Typically, you would import all computers to be imaged before beginning the imaging process. Doing this provides the opportunity to set the computer name, ARD information, network settings, local accounts and default workflow. DeployStudio Admin uses the same file format that NetRestore uses for CSV files; MACAddress (no colons),computername,hostname <return>.
DeployStudio
3
Workflows – This area provides a database of imaging/deployment workflows. Here you can add, edit or duplicate workflows. There are a number of pre-defined workflow tasks that are available. To add a task to a workflow, click the Add button
and drag the
desired task from the task drawer to the task workflow area. To edit a task, click on the task to view the tasks options in the panel below the workflow. Once a workflow has been edited, select another workflow from the list to save the workflow. Masters – This area provides a listing of all the images that currently reside in the DeployStudio repository. Scripts – This area provides a database of shell scripts that can be used in a workflow. To use a script in a workflow, add the “Run a script” task to a workflow and select the script to execute from the “Command” field pop–up. Most shell scripts created for use with NetRestore will work with DeployStudio.
DeployStudio Runtime DeployStudio Runtime provides a netbooted client access to the DeployStudio server. DeployStudio Runtime launches after a client is netbooted and allows for the “playback” of workflows. Playback includes the ability to create disk images of netbooted clients or to deploy to a netbooted client.
DeployStudio
4
Setup OS X Server Services Start AFP Enable Open Directory as a directory master Enable NetBoot with the following settings: • Enable NetBoot on port Ethernet 1 • Select the location for Images and Client Data
Users, Groups and Shares Open Workgroup Manager • Create the user “DS Admin” with short name “dsadmin” and a strong password in Open Directory • Create the user “DS User” with short name “dsuser” and a strong password in Open Directory • Create the user group “Deployment” in Open Directory and add “DS User” and “DS Admin” to the group DeployStudio Server works with users and groups from any OS X supported directory service, i.e. Local, Open Directory, Active Directory, etc. Open Server Admin • Select the server • Click File Sharing • Click Browse • Click New Folder and create a folder at the root of the drive labeled “repository” This folder can reside on any drive attached to the DeployStudio Server host or any server that supports AFP, CIFS or NFS. • Click Share and share the folder “repository” with the following privileges: • Owner – <server administrator> with Read & Write • Group – Staff with Read Only • Other – None • ACL – Deployment with Read & Write Verify that “dsuser” can connect to “repository” • In the Finder of a client, select Go>Connect to Server… • Enter “afp://<your AFP servers FQDN>/repository” in the Server Address field • Click Connect • Enter “dsuser” in the User field • Enter the “dsuser” password in the Password field • Click Continue • The “repository” share should mount to the client
DeployStudio
5
Installing DeployStudio Client/Server Method This method uses DeployStudio Server, DeployStudio Admin and DeployStudio Runtime in conjunction with NetBoot to provide a scalable high–performance distributed deployment solution. Install the latest nightly build of DeployStudio on a server Open System Preferences Click on the DeployStudio System Preference panel Click Launch Assistant Select “Setup a DeployStudio Server” Click Start Click OK Click Continue Select the DeployStudio Server from the Server address field pop–up Enter “dsadmin” in the User name field Enter the “dsadmin” password in the Password field Click Continue Select a network share point Click Continue Enter “afp://<your AFP servers FQDN>/repository” in the URL field Enter “dsuser” in the User field Enter the “dsuser” password in the Password field Click Continue Check “Enable email notifications” (this is optional) Enter deploystudioserver@<your FQDN> in the Sender email field (this is optional) Enter your email address in the Recipient email field (this is optional) Enter your email servers SMTP address in the SMTP server field (this is optional) Click Continue until finished Click OK Select DeployStudioAssistant>Quit Open System Preferences and select DeployStudio Click OFF, wait for the server to stop and then click ON Client/Server – Imaging and Deploying Startup using NetBoot Select the Workflow to run Click the play button
DeployStudio
6
All-in-One Method This method uses DeployStudio Server, DeployStudio Admin and DeployStudio Runtime simultaneously from a single source, a bootable external drive. Install OS X client on an external USB or Firewire drive Install the latest nightly build of DeployStudio Open System Preferences Click on the DeployStudio System Preference panel Click Launch Assistant Select “Setup a DeployStudio Server” Click Start Click OK Click Continue Select the local DeployStudio Server from the Server address field pop–up Enter the local administrator in the User name field Enter the local administrator’s password in the Password field Click Continue Select a local folder Click Continue Click Locate Select the local repository folder Click Continue until finished Click OK Select DeployStudioAssistant>Quit Open System Preferences and select DeployStudio Click OFF, wait for the server to stop and then click ON All-in-One Method – Imaging and Deploying Startup from the external USB or Firewire drive Open DeployStudio Admin.app Select the local DeployStudio server from the Server address field pop–up Enter the local administrator in the User name field Enter the local administrator’s password in the Password field Click Continue Make modifications to Workflows as needed, see Imaging and Deploying Click the Runtime button in the Toolbar or select DeployStudio Admin>DeployStudio Runtime… Select the Workflow to run Click the play button
DeployStudio
7
Runtime/Server Method This method uses DeployStudio Server, DeployStudio Admin and DeployStudio Runtime in a non–NetBoot environment to provide a distributed hybrid deployment solution. Install the latest nightly build of DeployStudio on a server Open System Preferences Click on the DeployStudio System Preference panel Click Launch Assistant Select Setup a DeployStudio Server Click Start Click OK Click Continue Select the DeployStudio Server from the Server address field pop–up Enter “dsadmin” in the User name field Enter the “dsadmin” password in the Password field Click Continue Select a network share point Click Continue Enter “afp://<your AFP servers FQDN>/repository” in the URL field Enter “dsuser” in the User field Enter the “dsuser” password in the Password field Click Continue Check “Enable email notifications” (this is optional) Enter deploystudioserver@<your FQDN> in the Sender email field (this is optional) Enter your email address in the Recipient email field (this is optional) Enter your email servers SMTP address in the SMTP server field (this is optional) Click Continue until finished Click OK Select “Create a DeployStudio bootable external drive (USB & Firewire)” Connect an external USB or Firewire drive Click Continue Click Continue Select the external USB or Firewire drive from the Available volumes pop–up Click Continue Select “Connect a specific server” Select the DeployStudio server from the Server address field pop–up Click Continue Enter “dsuser” in the Default login field Enter the “dsuser” password in the Password field Enter a strong password in the VNC password field Click Continue Click Continue Click OK once the bootable drive has been created Select DeployStudioAssistant>Quit
DeployStudio
8
Runtime/Server – Imaging and Deploying Startup from the external USB or Firewire drive Select the Workflow to run Click the play button
Creating a NetBoot Set Client Install the latest nightly build of DeployStudio on the OS X client that will be used to create the NetBoot set Open System Preferences Click on the DeployStudio System Preference panel Click Launch Assistant Click Ignore when asked to start the DeployStudio Server (DeployStudio Server is not required to be running to create a NetBoot set) Select “Create a DeployStudio NetBoot set” Click Continue Click Continue Modify the System name and Unique identifier fields as needed Select “Connect a specific server” Enter or select “http://<your DS servers FQDN>:60080”in the Address field pop–up Click Continue Enter “dsuser” and the “dsuser” password in the Default login and Password fields Enter a strong password in the VNC password field Click Continue Click Locate Select a location to save the NetBoot set Click Continue When finished, select DeployStudioAssistant>Quit Server Copy the NetBoot set to /Library/NetBoot/NetBootSP0 of the OS X Server running NetBoot Open Server Admin Start the NetBoot service
DeployStudio
9
Imaging and Deploying Creating OS X Disk Images – Unicast Workflow Open DeployStudio Admin.app Select the DeployStudio server from the Server address field pop–up Enter “dsadmin” in the User name field Enter the “dsadmin” password in the Password field Click Continue Select Workflows Select the “Create a master from a volume” workflow Click the duplicate button
to duplicate the workflow
Rename the workflow “Create Image – Unicast, OS X” Leave the Source field blank so that it can be selected in DeployStudio Runtime, otherwise specify the volume name to image Change Type to “Compressed – faster restoration, small footprint” Leave Format set to “Auto-detect” Keywords will be auto-populated with OS version and platform architecture when the image is created Click on another workflow to save changes Imaging Netboot the OS X client to be imaged using the DeployStudio NetBoot set Select “Create Image – Unicast, OS X” workflow Click the play button Select the volume to image if the volume name was not specified in the workflow Rename the image if needed Click the play button Once the workflow completes, the new image file will be placed on the server in /repository/Masters/HFS/ Note: After the image has been captured, it will not initially appear in Masters as it is undergoing post–processing. Eventually, the image will be moved from the "Work in Progress" folder for capture into the “Masters” folder of the repository. During the post–processing conversion, a gear
will be displayed in the Activity panel’s current status for this
process.
DeployStudio
11
Creating Boot Camp Disk Images – Unicast Workflow Open DeployStudio Admin.app Select the DeployStudio server from the Server address field pop–up Enter “dsadmin” in the User name field Enter the “dsadmin” password in the password field Click Continue Select Workflows Select the “Create a master from a volume” workflow Click the duplicate button
to duplicate the workflow
Rename the workflow “Create Image – Unicast, Boot Camp” Leave the Source field blank so that it can be selected in DeployStudio Runtime, otherwise specify the volume name to image Change Type to “Compressed – faster restoration, small footprint” Leave Format set to “Auto-detect”, this will automatically select the NTFS format Keywords will be auto-populated with OS version and platform architecture when the image is created Check “Try to shrink the size of NTFS volumes before imaging” Click on another workflow to save changes Imaging Netboot the OS X client that has a Boot Camp partition using the DeployStudio NetBoot set Select “Create Image - Unicast, Boot Camp” workflow Click the play button Select the Boot Camp volume to image if the volume name was not specified in the workflow Rename the image if needed Click the play button Once the workflow completes, the new image file will be placed on the server in repository/Masters/NTFS/ Note: After the image has been captured, it will not initially appear in Masters as it is undergoing post–processing. Eventually, the image will be moved from the "Work in Progress" folder for capture into the “Masters” folder of the repository. During the post–processing conversion, a gear
will be displayed in the Activity panel’s current status for this
process.
DeployStudio
12
Creating OSX/Boot Camp Disk Images – Multicast Workflow Open DeployStudio Admin.app Select the DeployStudio server from the Server address field pop–up Enter “dsadmin” in the User name field Enter the “dsadmin” password in the Password field Click Continue Select Workflows Select the “Create a master from a volume” workflow Click the duplicate button
to duplicate the workflow
Name the workflow “Create Image – Multicast, OS X/Boot Camp” Leave the Source field blank so that it can be selected in DeployStudio Runtime, otherwise specify the volume name to image Change Type to “Read only – reliable, large footprint” Leave Format set to “Auto-detect” Keywords will be auto-populated with OS version and platform architecture when the image is created Click on another workflow to save changes Imaging Create a windows image of a Boot Camp volume using WinClone (WinClone <http://twocanoes.com/winclone> provides distribution of NTFS images via multicast) Name the Boot Camp image “bootcamp.winclone” Copy the Winclone image file into a folder on the client to be imaged (i.e. /Users/Shared/Image/) Netboot the OS X client to be imaged using the DeployStudio NetBoot set Select “Create Image – Multicast, OS X/Boot Camp” workflow Click the play button Select the volume to image if the volume name was not specified in the workflow Rename the image if needed Click the play button Once the workflow completes, the new image file will be placed on the server in /repository/Masters/HFS/ Note: After the image has been captured, it will not initially appear in Masters as it is undergoing post–processing. Eventually, the image will be moved from the "Work in Progress" folder for capture into the “Masters” folder of the repository. During the post–processing conversion, a gear
will be displayed in the Activity panel’s current status for this
process.
Deploying OS X – Unicast Deployment Netboot the OS X client to be restored using the DeployStudio NetBoot set Select the “Restore a master on a volume” workflow Click the play button Select the image to restore Select the volume to restore Click the play button
DeployStudio
13
Deploying OS X/Boot Camp – Unicast Workflow Open DeployStudio Admin.app Select the DeployStudio server from the Server address field pop–up Enter “dsadmin” in the User name field Enter the “dsadmin” password in the Password field Click Continue Select Workflows Select the “Restore a master on a volume” workflow Click the duplicate button
to duplicate the workflow
Name the workflow “Deploy Image – Unicast, OS X/Boot Camp” Click the Add button
to add a task
Drag the task, “Partition a disk” task to the task area before the “Restore a disk image” task Check “Partition the first disk available” Select “Mac OS X + Windows” from the Partitioning profile pop–up Adjust partition sizes accordingly Check “Automate” Select the “Restore task” task Select the image to restore from the Image field pop–up Enter “MacOSX” in the Target field Enter “Macintosh HD” in the Rename volume to field Check “Automate” Drag the task, “Restore a disk image” to the task area after the “Restore a disk image” task Select “NTFS” from the Image pop–up Select the image to restore from the Image field pop–up Enter “WINDOWS” in the Target field Uncheck “Default startup volume” Check “Automate” Drag the task, “Reconfigure system with computers database content” to the task area after the “Restore a disk image” task Enter “Macintosh HD” in the Volume field Check “Rename computer” Check “Set computer information” Check “Automate” Deployment Netboot the OS X client to be restored using the DeployStudio NetBoot set Select the “Deploy Image – Unicast, OS X/Boot Camp” workflow Click the play button
DeployStudio
14
Deploying OSX/Boot Camp – Multicast Workflow Open DeployStudio Admin.app Select the DeployStudio server from the Server address field pop–up Enter “dsadmin” in the User name field Enter the “dsadmin” password in the Password field Click Continue Select Workflows Select the “Restore a master on a volume” workflow Click the duplicate button
to duplicate the workflow
Name the workflow “Deploy Image – Multicast, OS X/Boot Camp” Click the Add button
to add a task
Drag the task, “Partition a disk” task to the task area before the “Restore a disk image” task Check “Partition the first disk available” Select “Mac OS X + Windows” from the Partitioning profile pop–up Adjust partition sizes accordingly Check “Automate” Select the “Restore task” task Select the image to restore from the Image field pop–up Enter “MacOSX” in the Target field Enter “Macintosh HD” in the Rename volume to field Check “Enable multicast restoration with a startup delay of” Enter “30” into the seconds field Check “Automate” Drag the task, “Reconfigure system with computers database content” to the task area after the “Restore a disk image” task Check “Configure last restored volume” Check “Rename computer” Check “Set computer information” Check “Automate” Select Scripts Click the Add (+) button to add a script (this script will restore the Boot Camp partition using the WinClone image) Name the new script “restore_bootcamp.sh” Replace the sample script by pasting the following into the script body: #!/bin/sh #set -xv; exec 1>>/tmp/out 2>&1 PATH=/bin:/usr/bin:/sbin:/usr/sbin export PATH # Restore the Windows image using WinClone "/Volumes/Macintosh HD/Users/Shared/Image/bootcamp.winclone/ winclone.perl" -self-extract exit 0 DeployStudio
15
Click on another script to save Select Workflows Select the “Deploy Image – Multicast, OS X/Boot Camp” workflow Click the Add button
to add a task
Drag the task, “Run a script” to the task area after the “Reconfigure system with computers database content” task Select “restore_bootcamp.sh” from the Command field pop–up Check “Automate” Click on a different workflow to save Deployment Netboot the OS X client to be restored using the DeployStudio NetBoot set Select the “Deploy Image – Multicast, OS X/Boot Camp” workflow Click the play button
DeployStudio
16
Appendix A: Resources DeployStudio Quick Install Guide http://deploystudio.com/Doc/Entries/2009/1/31_Quick_install_guide.html
DeployStudio Architecture http://deploystudio.com/Doc/Entries/2007/6/6_Architecture.html
DeployStudio Wiki http://deploystudio.wikispaces.com/l
Understanding Multicast Restore http://www.bombich.com/mactips/multicast.html
NetBoot Across Subnets http://www.bombich.com/mactips/nbas.html http://www.bombich.com/software/nbas.html
Understanding and Troubleshooting the NetBoot Process http://www.bombich.com/mactips/bootpd.html http://www.bombich.com/mactips/netboot.html
WinClone http://twocanoes.com/winclone/
DeployStudio
17
Appendix B: Troubleshooting
Issue DeployStudio “Repository Access Error”
Possible Resolution Verify that a “network share point” and not a “local folder” was selected when setting up the DeployStudio Server. Try running the Assistant from another system pointed at the DeployStudio Server (i.e. ds.example.edu:60080)
DeployStudio Runtime workflow will not start automatically Computer groups are designed to run automatically only for new computers. Existing computers can be assigned an automated workflow by selecting the computer from the Computer list, click the General tab, and selecting the workflow. DeployStudio Runtime workflow will not complete successfully
DeployStudio Runtime offers excellent logging information and error messages. If a task in a workflow is misconfigured or if “Automate” is not chosen for every task in a workflow the process will not be able to complete. Click on the log icon in the Computers list to view a computers log file.
DeployStudio Runtime will not start a workflow, stating it is The specific computer may be disabled. This can happen if “Disable Computer after a successful execution” was disabled selected. To enable a computer, select the computer from the Computer list, click the General tab, and uncheck Disable. System will not NetBoot
Verify that latest OS is being used for the NetBoot set. Choose “About This Mac” from the Apple menu and click on the version to find the build number. Compare this to the default image that shipped with the computer being NetBooted. Each new computer released has a specific ROM and drivers that are not typically included in previous builds.
System will not NetBoot
Verify bootp is enabled and allowed on the network. In certain network security scenarios, bootp may not be allowed from other than the primary DHCP server.
System will not NetBoot
NetBoot is designed to traverse subnets, but is often blocked by the routers in a given environment. Network administrators can route bootp or use tools like NetBoot Across Subnets (NBAS) from Bombich Software <www.bombich.com/software/nbas.html> to allow NetBooting across subnets.
DeployStudio
18