SlideShare a Scribd company logo
Hyper-Efficient
Mac Deployment
Light-touch tools to automate Mac management
Nick McSpadden
Client Systems Manager
Schools of the Sacred Heart, San Francisco
Old and Busted:
"Golden Master imaging"
Golden Master: create one perfect Mac, clone it to all machines.
Sometimes unexpected problems occur with different
hardware.
ByHost preferences, correct boot cache, hardware-specific
OS builds - these are all issues with golden master imaging.
The second a new update comes out, the image is
outdated - and so are all the devices cloned from it.
This requires fully rebuilding the image every time you
want to update anything.
Golden master imaging has no good method for ongoing
management or updates.
How do you update end nodes? Re-imaging them every
time an update comes out?
New Hotness:
"Thin imaging"
Thin imaging: Lay down a never-booted base OS layer,
and then granularly install software on top of it.
Base Mac OS
OS Software Updates
3rd-Party Software:
Office, Adobe

iLife/iWork, etc.
Profiles, config. mgmt
Highly modular and adaptable to any configuration.
Easily updated, as only the individual piece of software
has to be touched.
Base Mac OS
OS Software Updates
3rd-Party Software:
Office only
Profiles, config. mgmt
Base Mac OS
OS Software Updates
3rd-Party Software:
Office, Adobe
Profiles, config. mgmt
Hotter Hotness:
"No imaging"
No imaging: For new Macs out of the box, the OS is
already installed. Don't remove and reattach the wheel.
OS Software Updates
3rd-Party Software:
Office, Adobe

iLife/iWork, etc.
Profiles, config. mgmt
Thin Imaging Workflow:
Preparation
1. Create the base OS layer - never-booted OS X install.

createOSXInstallPkg
2. Set up initial install mechanism - NetBoot server.

DeployStudio
3. Set up Apple software updates - local update server.

Reposado
4. Set up software deployment mechanism - something
to install packages.

Munki
Building A Never-Booted
OS X Install
CreateOSXInstallPkg:

https://github.com/munki/
createOSXinstallPkg
• Creates a standard Apple pkg
that installs OS X.
• Can be installed with any tool
or mechanism that supports
installing standard Apple
packages.
• Supports adding other .pkgs
to install process.
• We use this to Install the OS.
Setting up DeployStudio
DeployStudio:

http://www.deploystudio.com/
Home.html
• With OS X Server, can boot
up Macs over the network via
NetBoot.
• Set up workflows to install
packages.
• Use this to install OS X +
Munki + initial setup
configuration on client
machines.
Setting up OS X
Software Updates
Reposado:

https://github.com/wdas/
reposado
• Can run on any server
platform - Windows, OS X,
Linux.
• Hosts a local copy of Apple's
software update catalog.
• Requires about ~200 GB of
disk space.
Setting up Software
Deployment Mechanism
Munki:

https://github.com/munki/
munki
• Can run on any web server
platform - Windows, OS X,
Linux.
• Requires software installed
on clients, which pull from the
server periodically.
• Installs packages, disk
images, and Apple software
updates from local server.
Munki - Quick primer
Munki:

Munki will install/update all
software on first boot (and
every ~2 hours).
Each client machine has a
manifest, which specifies what
software should be installed.
The latest version of the
imported software is always
installed.
Thin Imaging Workflow:
Deployment
1. Use NetBoot to boot to DeployStudio.
2. Install the base Mac OS 10.10.3 installer package -
createOSXInstallPkg.
3. Install Munki client software package.
4. Install local admin account, bypass initial setup
screens.
5. On boot, Munki triggers and installs all software &
updates from Reposado.
DeployStudio in action
29 minutes later...
On first boot, Munki triggers
We installed 10.10.3.
What happens when 10.10.4
comes out in a month or two?
What happens when OS X 10.11
comes out in November?
Modularity of Thin Imaging
Only individual pieces require
updating. Total time to update
the workflow for new items:
• If a new OS comes out:

Run CreateOSXInstallPkg
again. 

Total time: ~7 minutes.
• If a new Firefox or Chrome comes out:

Import new version into Munki.

Total time: ~30 seconds.
Monolithic aspect of
Golden Master Imaging
Total time to update the
workflow if a new OS comes
out:
1. Install image on fresh
machine.

Time dependent on transfer
speed - at gigabit, with SSD:

Estimated time: ~20 minutes
for a 15 GB image.
2. Install new OS. 

Estimated time: ~30 minutes.
3. Capture new image.

Estimated time: ~40-60 minutes.
Modularity of Software
Deployment with Munki:
Use AutoPkg (https://
github.com/autopkg/autopkg)
to get common updates.
Total admin effort for me to
update Firefox on all machines:

autopkg run Firefox.munki
MakeCatalogs.munki
or:
munkiimport ~/Downloads/
Firefox.dmg
Munki will ensure all clients will
receive the update.


Within 24 hours, 80% of my
fleet will have the new update
of Firefox.
Within 48 hours, 99+% of my
fleet will have it.
Total admin time involved:

5 seconds
Why Use Munki for
Deployment?
Scenario: 

New Firefox update comes out.
Admin imports into Munki.
Machines that will receive
update:
• All new machines that are
deployed from now on.
• All existing machines with
Munki.
Scenario: 

New Firefox update comes out.
Admin recreates golden master.
Machines that will receive
update:
• All new machines that are
deployed from now on.
• ????

Total cost of all of these
tools?
$0
One method, one command, to
update all existing and new
machines.
No need to reinvent the wheel.
Thin imaging gives you unlimited
flexibility and control.
Thin imaging gives you, the admin,
your time back.
Hyper-Efficient Mac Deployment
Where do I go from here?
• Consider adding some kind of MDM / Configuration
Management tool.
• Profiles for configuring OS X settings (Profile Manager
not required).
• Find/Write/Share AutoPkg recipes for your common
installs.
• Join the OS X Admin community!
Resources
• Going MAD - Munki, AutoPkg, and DeployStudio by Steve Yuroff,
PSU Mac 2014:

https://youtu.be/UG84nedo4ag
• You Oughta Check Out AutoPkg by Greg Neagle, PSU Mac 2014:

https://youtu.be/mqK-MAEZekI
• What's New With Munki? by Greg Neagle, MacSysAdmin 2014:

http://docs.macsysadmin.se/2014/pdf/What_is_new_with_Munki.pdf

http://docs.macsysadmin.se/2014/video/Day2Session3.mp4
• Setting Up Munki with OS X Yosemite Server, by Nick McSpadden

https://osxdominion.wordpress.com/2015/02/26/setting-up-munki-
with-os-x-yosemite-server/
More Advanced Resources
• Munki-In-A-Box

https://github.com/tbridge/munki-in-a-box

Helpful setup script for Munki & Autopkg
• AutoNBI

https://bitbucket.org/bruienne/autonbi

Generate DeployStudio NetBoot images automatically
• BSDPy

https://bitbucket.org/bruienne/bsdpy

Python-based NetBoot server (cross-platform)
More Resources
• MacBrained.org

Local Mac admin user group, meeting monthly in the
Bay Area - join now!
• IRC channel for OS X admins: ##osx-server on
FreeNode
• Mac Enterprise mailing list, hosted by PSU:

http://www.macenterprise.org/mailing-list
• AFP548, a site for Mac admins:

http://www.afp548.com/

More Related Content

PPTX
Virtualization
PPTX
Automating your mac farm for iOS build and automation
PPT
Apache Flink Crash Course by Slim Baltagi and Srini Palthepu
PPTX
Nimbix execution steps and sample exercise
ODT
openQRM how-to: Setup UEC and openQRM cloud
PDF
High Stakes Continuous Delivery in the Real World #OpenWest
PDF
Automated everything - Setting up an openQRM Cloud
ODP
System Imager.20051215
Virtualization
Automating your mac farm for iOS build and automation
Apache Flink Crash Course by Slim Baltagi and Srini Palthepu
Nimbix execution steps and sample exercise
openQRM how-to: Setup UEC and openQRM cloud
High Stakes Continuous Delivery in the Real World #OpenWest
Automated everything - Setting up an openQRM Cloud
System Imager.20051215

What's hot (20)

PPTX
ASP.NET 5 auf Raspberry PI & docker
PDF
Continuous Integration with Hackintosh
PDF
Ci For The Web 2.0 Guy Or Gal
PDF
Automated Amazon EC2 Cloud deployments with openQRM
PPTX
Any point on mac
PPT
Prepping software for w7 deployment
ODP
OpenSolaris 2009.06 Workshop
PPTX
Kaseya Connect 2011 - Imaging & Deployment
ODP
Automated Deployment using Open Source
PPTX
ELC-E 2010: The Right Approach to Minimal Boot Times
PPTX
Java and other open source solutions on windows azure
PDF
12 Lessons Learnt in Boot Time Reduction
PPT
Free tools for rapidly deploying software
PDF
Windows 10: all you need to know!
ODP
FIWARE Lab Cloud Portal
PPTX
Installation of Windows & Linux operating system
PDF
install CentOS 6.3 minimal on Hyper-V
PDF
VMworld 2013: What's New with VMware Workstation
PDF
OpenNebula Conf 2014 | OpenNebula and MooseFS for disaster recovery: real clo...
ASP.NET 5 auf Raspberry PI & docker
Continuous Integration with Hackintosh
Ci For The Web 2.0 Guy Or Gal
Automated Amazon EC2 Cloud deployments with openQRM
Any point on mac
Prepping software for w7 deployment
OpenSolaris 2009.06 Workshop
Kaseya Connect 2011 - Imaging & Deployment
Automated Deployment using Open Source
ELC-E 2010: The Right Approach to Minimal Boot Times
Java and other open source solutions on windows azure
12 Lessons Learnt in Boot Time Reduction
Free tools for rapidly deploying software
Windows 10: all you need to know!
FIWARE Lab Cloud Portal
Installation of Windows & Linux operating system
install CentOS 6.3 minimal on Hyper-V
VMworld 2013: What's New with VMware Workstation
OpenNebula Conf 2014 | OpenNebula and MooseFS for disaster recovery: real clo...
Ad

Viewers also liked (17)

PPTX
Peritraumatic Dissociation in Labour: Is it a sentinel signal of mothers at r...
PPTX
Brain Behind, Body Forward
PDF
Gurushant H Portfolio
DOCX
Muhammad Ramzan CV
DOCX
Brophy CV 12_27_15
PPT
'With knowledge comes responsibility'? International social policy responses ...
PPTX
Social Networking for Surgeons
PPTX
Supporting children and families returning home from care: Counting the costs
DOCX
PDF
Certificates and CV
PPT
A perenting programme for parents with learning disabilities and/or difficulties
PPT
Stop it Now
PPTX
Pre-Birth Risk Assessment
PPTX
An Evaluation of Practice within the Northern Ireland Guardian ad Litem Agenc...
PPTX
Rise High Performance Presents - Strenght & Conditioning to Improve YOUR Golf...
PDF
Get Your Board to Say "Yes" to a BSIMM Assessment
PDF
Kristalia interiors pre qualification 16 05 15
Peritraumatic Dissociation in Labour: Is it a sentinel signal of mothers at r...
Brain Behind, Body Forward
Gurushant H Portfolio
Muhammad Ramzan CV
Brophy CV 12_27_15
'With knowledge comes responsibility'? International social policy responses ...
Social Networking for Surgeons
Supporting children and families returning home from care: Counting the costs
Certificates and CV
A perenting programme for parents with learning disabilities and/or difficulties
Stop it Now
Pre-Birth Risk Assessment
An Evaluation of Practice within the Northern Ireland Guardian ad Litem Agenc...
Rise High Performance Presents - Strenght & Conditioning to Improve YOUR Golf...
Get Your Board to Say "Yes" to a BSIMM Assessment
Kristalia interiors pre qualification 16 05 15
Ad

Similar to Hyper-Efficient Mac Deployment (20)

DOCX
MDT Step public
PPTX
TDF Professional Conf 2010 - Rapid Windows 7 Deployments
PPTX
Introduction to Jenkins X
PPTX
System adminstration Workstations work.pptx
PDF
Suse Studio: "How to create a live openSUSE image with OpenFOAM® and CFD tools"
PDF
Howto Pxeboot
PDF
Why Mac Sysadmins Love Python
PPTX
Atea sccm parallels
PPTX
K2000 Mac Imaging
PPTX
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptx
PDF
Lesson 02 - React Native Development Environment Setup
DOCX
Prizm Installation Guide
PPTX
Building an iOS Build Server
PDF
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
PDF
Compile open cpn on windows
PDF
Chocolatey - making the process of installing software on windows easy as pie
PDF
Packer by HashiCorp
PDF
How to use TripleO tools for your own project
PPTX
Automation testing on ios platform using appium
DOCX
BLCN532 Lab 1Set up your development environmentV2.0.docx
MDT Step public
TDF Professional Conf 2010 - Rapid Windows 7 Deployments
Introduction to Jenkins X
System adminstration Workstations work.pptx
Suse Studio: "How to create a live openSUSE image with OpenFOAM® and CFD tools"
Howto Pxeboot
Why Mac Sysadmins Love Python
Atea sccm parallels
K2000 Mac Imaging
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptx
Lesson 02 - React Native Development Environment Setup
Prizm Installation Guide
Building an iOS Build Server
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Compile open cpn on windows
Chocolatey - making the process of installing software on windows easy as pie
Packer by HashiCorp
How to use TripleO tools for your own project
Automation testing on ios platform using appium
BLCN532 Lab 1Set up your development environmentV2.0.docx

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Approach and Philosophy of On baking technology
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
KodekX | Application Modernization Development
PPTX
A Presentation on Artificial Intelligence
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Encapsulation theory and applications.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
NewMind AI Monthly Chronicles - July 2025
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Network Security Unit 5.pdf for BCA BBA.
Approach and Philosophy of On baking technology
Review of recent advances in non-invasive hemoglobin estimation
Machine learning based COVID-19 study performance prediction
Understanding_Digital_Forensics_Presentation.pptx
KodekX | Application Modernization Development
A Presentation on Artificial Intelligence
Diabetes mellitus diagnosis method based random forest with bat algorithm
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Unlocking AI with Model Context Protocol (MCP)
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Encapsulation theory and applications.pdf
The AUB Centre for AI in Media Proposal.docx
“AI and Expert System Decision Support & Business Intelligence Systems”

Hyper-Efficient Mac Deployment

  • 1. Hyper-Efficient Mac Deployment Light-touch tools to automate Mac management Nick McSpadden Client Systems Manager Schools of the Sacred Heart, San Francisco
  • 2. Old and Busted: "Golden Master imaging" Golden Master: create one perfect Mac, clone it to all machines.
  • 3. Sometimes unexpected problems occur with different hardware. ByHost preferences, correct boot cache, hardware-specific OS builds - these are all issues with golden master imaging.
  • 4. The second a new update comes out, the image is outdated - and so are all the devices cloned from it. This requires fully rebuilding the image every time you want to update anything.
  • 5. Golden master imaging has no good method for ongoing management or updates. How do you update end nodes? Re-imaging them every time an update comes out?
  • 6. New Hotness: "Thin imaging" Thin imaging: Lay down a never-booted base OS layer, and then granularly install software on top of it. Base Mac OS OS Software Updates 3rd-Party Software: Office, Adobe
 iLife/iWork, etc. Profiles, config. mgmt
  • 7. Highly modular and adaptable to any configuration. Easily updated, as only the individual piece of software has to be touched. Base Mac OS OS Software Updates 3rd-Party Software: Office only Profiles, config. mgmt Base Mac OS OS Software Updates 3rd-Party Software: Office, Adobe Profiles, config. mgmt
  • 8. Hotter Hotness: "No imaging" No imaging: For new Macs out of the box, the OS is already installed. Don't remove and reattach the wheel. OS Software Updates 3rd-Party Software: Office, Adobe
 iLife/iWork, etc. Profiles, config. mgmt
  • 9. Thin Imaging Workflow: Preparation 1. Create the base OS layer - never-booted OS X install.
 createOSXInstallPkg 2. Set up initial install mechanism - NetBoot server.
 DeployStudio 3. Set up Apple software updates - local update server.
 Reposado 4. Set up software deployment mechanism - something to install packages.
 Munki
  • 10. Building A Never-Booted OS X Install CreateOSXInstallPkg:
 https://github.com/munki/ createOSXinstallPkg • Creates a standard Apple pkg that installs OS X. • Can be installed with any tool or mechanism that supports installing standard Apple packages. • Supports adding other .pkgs to install process. • We use this to Install the OS.
  • 11. Setting up DeployStudio DeployStudio:
 http://www.deploystudio.com/ Home.html • With OS X Server, can boot up Macs over the network via NetBoot. • Set up workflows to install packages. • Use this to install OS X + Munki + initial setup configuration on client machines.
  • 12. Setting up OS X Software Updates Reposado:
 https://github.com/wdas/ reposado • Can run on any server platform - Windows, OS X, Linux. • Hosts a local copy of Apple's software update catalog. • Requires about ~200 GB of disk space.
  • 13. Setting up Software Deployment Mechanism Munki:
 https://github.com/munki/ munki • Can run on any web server platform - Windows, OS X, Linux. • Requires software installed on clients, which pull from the server periodically. • Installs packages, disk images, and Apple software updates from local server.
  • 14. Munki - Quick primer Munki:
 Munki will install/update all software on first boot (and every ~2 hours). Each client machine has a manifest, which specifies what software should be installed. The latest version of the imported software is always installed.
  • 15. Thin Imaging Workflow: Deployment 1. Use NetBoot to boot to DeployStudio. 2. Install the base Mac OS 10.10.3 installer package - createOSXInstallPkg. 3. Install Munki client software package. 4. Install local admin account, bypass initial setup screens. 5. On boot, Munki triggers and installs all software & updates from Reposado.
  • 18. On first boot, Munki triggers
  • 19. We installed 10.10.3. What happens when 10.10.4 comes out in a month or two? What happens when OS X 10.11 comes out in November?
  • 20. Modularity of Thin Imaging Only individual pieces require updating. Total time to update the workflow for new items: • If a new OS comes out:
 Run CreateOSXInstallPkg again. 
 Total time: ~7 minutes. • If a new Firefox or Chrome comes out:
 Import new version into Munki.
 Total time: ~30 seconds.
  • 21. Monolithic aspect of Golden Master Imaging Total time to update the workflow if a new OS comes out: 1. Install image on fresh machine.
 Time dependent on transfer speed - at gigabit, with SSD:
 Estimated time: ~20 minutes for a 15 GB image. 2. Install new OS. 
 Estimated time: ~30 minutes. 3. Capture new image.
 Estimated time: ~40-60 minutes.
  • 22. Modularity of Software Deployment with Munki: Use AutoPkg (https:// github.com/autopkg/autopkg) to get common updates. Total admin effort for me to update Firefox on all machines:
 autopkg run Firefox.munki MakeCatalogs.munki or: munkiimport ~/Downloads/ Firefox.dmg Munki will ensure all clients will receive the update. 
 Within 24 hours, 80% of my fleet will have the new update of Firefox. Within 48 hours, 99+% of my fleet will have it. Total admin time involved:
 5 seconds
  • 23. Why Use Munki for Deployment? Scenario: 
 New Firefox update comes out. Admin imports into Munki. Machines that will receive update: • All new machines that are deployed from now on. • All existing machines with Munki. Scenario: 
 New Firefox update comes out. Admin recreates golden master. Machines that will receive update: • All new machines that are deployed from now on. • ????

  • 24. Total cost of all of these tools?
  • 25. $0
  • 26. One method, one command, to update all existing and new machines. No need to reinvent the wheel.
  • 27. Thin imaging gives you unlimited flexibility and control. Thin imaging gives you, the admin, your time back.
  • 29. Where do I go from here? • Consider adding some kind of MDM / Configuration Management tool. • Profiles for configuring OS X settings (Profile Manager not required). • Find/Write/Share AutoPkg recipes for your common installs. • Join the OS X Admin community!
  • 30. Resources • Going MAD - Munki, AutoPkg, and DeployStudio by Steve Yuroff, PSU Mac 2014:
 https://youtu.be/UG84nedo4ag • You Oughta Check Out AutoPkg by Greg Neagle, PSU Mac 2014:
 https://youtu.be/mqK-MAEZekI • What's New With Munki? by Greg Neagle, MacSysAdmin 2014:
 http://docs.macsysadmin.se/2014/pdf/What_is_new_with_Munki.pdf
 http://docs.macsysadmin.se/2014/video/Day2Session3.mp4 • Setting Up Munki with OS X Yosemite Server, by Nick McSpadden
 https://osxdominion.wordpress.com/2015/02/26/setting-up-munki- with-os-x-yosemite-server/
  • 31. More Advanced Resources • Munki-In-A-Box
 https://github.com/tbridge/munki-in-a-box
 Helpful setup script for Munki & Autopkg • AutoNBI
 https://bitbucket.org/bruienne/autonbi
 Generate DeployStudio NetBoot images automatically • BSDPy
 https://bitbucket.org/bruienne/bsdpy
 Python-based NetBoot server (cross-platform)
  • 32. More Resources • MacBrained.org
 Local Mac admin user group, meeting monthly in the Bay Area - join now! • IRC channel for OS X admins: ##osx-server on FreeNode • Mac Enterprise mailing list, hosted by PSU:
 http://www.macenterprise.org/mailing-list • AFP548, a site for Mac admins:
 http://www.afp548.com/