==========
COMPARISON
==========
Disk Utility - uses ASR, hdiutil
PROS: Built in, easy to use, supported
CONS: difficult to automate, requires extra steps, manual effort

System Image Utility - built into Mac OS X Server
PROS: uses Automator, works well with NetBoot, supported
CONS: Past versions unreliable, only works with 10.5 systems

NetRestore -
PROS: Easy to use, industry standard, automation, works with NetBoot
CONS: Retired, no longer supported by Apple

DeployStudio - (__www.deploystudio.com__)
PROS: Free, automation, workflows, image creation
CONS: Learning curve, non-Apple support, new
(see Dane Riley's document on it)

InstaDMG -
PROS: Free, DMG/package based, un-booted imaes, deploy universally
CONS: Learning curve, non apple support, new

Casper Suite -
PROS: Supports self-service, push/pull
CONS: Requires client-access licenses


=========
CREATE
=========
Pre-production:
Create a master off of a source machine
1) run software updates
2) create at least one local administrator
3) Run each application once (including DVD region code) - MS Office 2008 problems?
4) Repair Permissions
5) configure anything not managed by WGM
6) Test, test, test

Verify build number, apply combo updates

More suggestions:
1) Create Apple Remote Desktop admin
2) Set master password for Filevault
3) Launch applications like MS Word
3) Enable Remote Desktop
4) Enable NTP
5) Delete Directory Service entries (unbind from server, will be done on post-install script)

Remove Local Kerberos Distribution Center (LKDC) -> DeployStudio takes care of this
(Keychain utility -> System -> com.apple.kerberos.kdc)

Dump caches (Onyx)
*Remove the sleepimage (/private/var/vm) (don't reboot or it recreates)
Pair the remotes

NOTE: Disk Utility new image from Folder -> stretchable image, ignores freespace
Multicast ASR is faster for compressed images

DeployStudio
=============
Supports Dual Boot, using WinClone
Components: Daemon, Server Repository, Assistant, Admin, Runtime
Repository: images folder
Runtime: aka NetRestore

PROCESS:
Local boot <-> local repository (everything is local, i.e. external drive)
Local boot <-> network repository (local boot finds net repo on the network)
Network boot <-> network repository (boot off of network, install from network repo)



===============
SETUP
===============

Configure server for advanced, private network (10.1.1.1, 255.255.0.0, 10.1.1.1)
Remove server from list
Server -> Add Server ("macbook.local")
Choose: AFP, DHCP, DNS, Netboot, NFS, OpenDirectory

1) DNS
Zones -> Add Primary Zone (Master)
PZ Name: apple.edu
double click on NS -> macbook.apple.edu
At top, click "apple.edu" triangle, change "ns" to "macbook", IP to "10.1.1.1"

2) System Preferences
DNS -> 10.1.1.1
Search domains -> apple.edu
Start DNS

3) Terminal
$ hostname --> macbook.apple.edu
$ host macbook.apple.edu --> 10.1.1.1
$ host 10.1.1.1 --> should resolve reverse
$ sudo changeip -checkhostname --> names should match

4) DHCP
Subnets
Rename Subnet to "Private Network"
Router -> 10.1.1.1
DNS tab -> DNS Server -> 10.1.1.1
Search Domain -> apple.edu
Start DHCP

5) In Server Admin
Remove "macbook.local"
Add "macbook.apple.edu"

6) OpenDirectory
Settings
"Change..."
--> Open Directory Master, "Directory administrator" / diradmin, password: admin

7) AFP
Start AFP

8) Click on macbook.apple.edu
File Sharing
Server HD -> Browse
New Folder -> "deploystudio" -> Share

9) Open Workgroup Manager
Click lock - diradmin/admin
New User - "Deploystudio" / "dsadmin" (short name) / password "apple"

10) Server Admin
File Sharing -> "deploystudio" -> Permissions -> +
Drag "deploystudio" user onto the "root" POSIX entry
Share Points -> "deploystudio"

11) Install DeployStudio

12) Apps -> Utilities -> DeployStudio Assistant
Start
Setup a DeployStudio server
address: "__http://macbook.apple.edu:60080__"
name: "dsadmin" / "apple"
Network Sharepoint
URL: "afp://macbook.apple.edu/imaging"
name: "dsadmin" / "apple"
√ Enable Secure server (60443)
(modify multicast settings?)
Continue until done

Next: Create a DeployStudio NetBoot set
System name: "MacBook 06-09-2009"
Unique Identifier: 101
Continue...
Address: "__https://macbook.apple.edu:60443__" (drop down menu)
Continue...
Default login: "dsadmin" / "apple"
VNC password: "apple"
Destination: "/Library/NetBoot/NetBootSP0"
OK - Quit

13) Server Admin
NetBoot
√ Ethernet
Server HD - √ Images, √ Client Data - Save
Images tab
√ Default - Save
Start NetBoot
Quit

14) Apps -> Utilities -> DeployStudio Admin
admin / admin
WORKFLOWS - Click on "Create master from a volume"
Click copy button on bottom (two window icon)
Rename to "Seminar Image Creation"
Source: "Unkefer MacBook 12" (volume name of machine you're imaging off of)
Type: "Compressed"
Format: "auto-detect"
√ Automate

COMPUTERS - click "+" on far left
Change Group 0 to "Lab"
Local hostname: "macbook" 001-999
computer name: "macbook"

"Network" tab allows you to setup network locations and proxies
"Accounts" tab - you can add local accounts after restoration
-may be more efficient to create general image and then add accounts later
"Automation" tab
√ Default group
Start automatically workflow: "Seminar Image Creation"
√ Reset default workflow after a successful execution
√ Disable computer after a successful execution (to prevent a restart loop)

Test a copy by booting up machine while holding N

*This is an example of creating an automatic image from a copy. You'll generally only do this once to create the image.

==============
FOR DEPLOYMENT
==============
WORKFLOWS - Copy "Restore a master on a volume"
Image - choose master DMG image
Target - name of foreign volume (client) (√ Restore image on first drive available)
Rename volume to - change name to whatever you want

Click "+" next to "Restore Task" - sheet full of post-restore actions