Deploystudio is a system which can be used to deploy OSX clients and servers within the small/medium or large business environments. The system is built onto of the OSX Server NetBoot system and uses images & workflows as its core assets. While working at my current employer I was asked to upgrade the organisations OSX platform providing tight windows integration and a more efficient deployment system. After some research I chose deploystudio due to its performance and capability for customisation.
Although feature-rich, deploystudio isn't so intuitive for the novice OSX engineer and it's my aim through this article to provide a quick step-by-step overview of client deployment using deploystudio(DS). Although advanced customisation is outside the scope of this article I do hope to provide reasons for any decision I make and would welcome any comments & experiences.
A OSX server installed and configured as suitable for your environment ( a example install here )
Netboot Installed and enabled - and a suitable image folder prepared ( guide here or here )
Deploystudio Install with default options ( also explained here or here )
The process of deployment consists of the following high level steps :-
Creation of netboot boot images for deploystudio (already mentioned here)
Creation of a master OSX image
Creation of one or more workflows controlling the deployment
Deployment using Netboot & Deploystudio
This document will provide an overview of points 2,3 and 4 above. The creation of the netboot images has been detailed in my previous article (here or here).
Creation Of A Master Image
A master image is the basis of any deployment process within Deploystudio. It's at its most basic a working installation of OSX to which actions contained in a workflow run against. Workflows will be detailed in the next section but for now I will detail how a master image is created. N.b this process is architecture dependant so will need to happen separately on PPC and Intel machines.
Boot your Intel (or PPC) mac from either an OSX10.6 or OSX10.5 DVD and proceed to install the system as normal. Use a single partition and be sure to install Rosetta if you're installing on a Intel MAC. Once the installation completes and the green tick is shown power your machine down and prepare for the next stage.
Press and hold the 'N' key and start the Mac, continue holding the N key until you see the screen shown below - specifically the rotating planet indicating that network booting has started.
The boxes should auto populate with the exception of the password box (unless you chose to specify a password in my previous article to allow automated deployment). The password will be the one chosen when creating a netboot image in my previous article. Enter appropriate details and click login to access the DeployStudio workflow screen as shown below.
At this stage you will only see a small number of workflows, the one we want is the 'create master from volume'. Select it and click next. On the next screen enter a suitable name for the image and click next. I chose OSX10.6_PRE_APPLESETUP_ROSETTA.i386.hfs.dmg for my image name to indicate the version, the fact it was imaged before apple setup, the fact it had Rosetta installed and that it was for Intel (i386) machines.
DeployStudio will now image the local harddisk and transfer it onto the master folder within the Deploystudio share you created as part of my previous article. This stage can take anywhere from 20 to 60 minutes and is heavily dependant on network and disk speeds.
A workflow is a series of actions which can be applied to a master image, or a volume on a mac. Within the scope of this article a workflow has been used to create the master image, and the one we will create in this section will be used to deploy the master image to a machine and apply some post installation configuration settings.
A workflow should be created within your organisation for each architecture; small differences may exist between PPC and Intel and its easier if you can seperate the workflows for these. In addition you may have workflows which exist for different business units, requirements or even groups of machines. During this article I will detail the creation of 'Testworkflow' which I created for my currently employer to deploy a master image to intel machines.
Firstly start deploystudio admin and login to the correct deployment server. You should then see a screen similar to that shown below.
My employer had a specific set of requirements. Firstly they wanted the workflow to prompt the operator for machine, network and user information during its initial stages and wanted the remainder to be fully automated. In addition they wanted the workflow to join the machine to Active and Open directory without operator input.
Firstly to comply with the informational requirements we should add three collection forms to the workflow. Click and Drag the 'Hostname', 'Network Location' and 'New User' tasks from the 'computer database update tasks' section.
You should start to see that a workflow is essentially a set of sequential tasks which are executed one by one until the workflow is finished. In this case, when started, the workflow will prompt the operator for hostname information (machine name, serial etc), then prompt for any custom IP addressing and finally for creation of a number of users.
Next we need to apply the master image onto the machine for which we will use the 'Restore Image' action. Click and drag the action to the end of the workflow as you did above.
With this task there are some addition options which we need to set. Tick the box to say restore on the first drive available (if appropriate) and type 'SYSTEM' in the 'rename volume to:' box (again if appropriate). You may want to consider if this is in line with your organisational policy.
If you do want the this stage to be automated, you can tick the 'Automate' box.
The next stage is to apply the information we captured earlier ( hostname, network configuration and any users ). Click and drag the 'reconfigure system with computers database content' action to the end of the workflow. Ensure all the options shown in the screenshot below are selected.
As the next action in the workflow, click and drag the 'time setup' task. If appropriate this will configure the machine being deployed to have its time synched with a local server ( in this case our local domain controller).
Again, if required ensure the 'automate' item is selected to avoid the need for operator input. The next task is the 'active directory binding' task, once again click and drag it to the end of the workflow.
Ensure that the options on this task are the same as the screenshot above, but take care that anything specific to your organisation is configured correctly. Next, add is the 'open directory binding' task, like the one above this does require some configuration.
The servername, directory admin and password will be specific to your organisation so care is needed at this point to ensure they are set correctly. Once done the work flow in its most basic form is completed. You can add other steps such as automated package deployment ( for package creation please see my article here or here on the subject ). Packages can me either .pkg or .mpkg files and are installed using the 'install package' task as shown below.
Depyloyment of a OSX client begins in much the same way as master imaging started. Press and hold the 'N' key and switch on the mac, continue holding the 'N' key until the rotating planet is displayed onscreen. After a few minutes the deploystudio screen should display and you will need to enter the same password you used in the first section of this article. Click Login and the system will show a list of workflows.
The workflow you created in the previous section will be listed, for the case of this document the one I will be using is 'INTEL - DEPLOY MAC (10.6)' which is our 'testworkflow' renamed for production use. Click on the play button and you can navigate through the three information capture screens we added to the start of the workflow. The first asks for hostname information, the second network information and the third asks for a username to create.
Any information which you enter in the above screens will be saved in the machine database for future use. The next time a deployment happens you can skip past the screens and use the same information.
Click 'play' and the deployment process will begin with the 'install image' task we added to our workflow.
For each of the tasks in the workflow a screen similar to the one above will be displayed. The process will finish and will prompt you to either continue or exit. Select to exit and the machine will restart. During the first boot, rather than the usual grey OSX screen the console will will show the progress of the final configuration tasks followed by another reboot. At this point the machine is deployed and ready to go.
I hope this article was useful, i've attempted to keep it simple and avoid many of the options available. Once you have done one deployment in a test lab you can have a play with some of the other features deploystudio offers.
Please visit the other articles in this series here, here and here. Also the main page of the blog here. In addition please pay a visit to my experts exchange profile here, where you can keep up to date on various answers and articles I have provided.
EE links for my articles in this series are here and here.
Above all, please comment on the article if its usefull - i always value the feedback.