Installing and configuring Munki with Puppet
2013, Jul 25
“Puppet is a powerful system administration tool for Macs. But Munki is better at managing software packages. Do the smart thing and use puppet to deploy and configure Munki on your Mac clients.” – Chris McCafferty
I couldn’t have said it better myself. Thanks for the recipe! Here’s my version of the same solution …
Place the following code in your modules/munki/manifests/init.pp file:
class munki { # http://go.vertigion.com/PuppetModules-Munki $munki = 'munkitools-0.9.0.1803.0' $munki_download = "https://munki.googlecode.com/files/$munki.dmg" $munki_server = 'http://munki.example.com' # https://code.google.com/p/munki/wiki/BootstrappingWithMunki $bootstrap = '/usr/bin/touch /Users/Shared/.com.googlecode.munki.checkandinstallatstartup' $managed_installs = '/Library/Preferences/ManagedInstalls' package { "$munki.dmg" : provider => pkgdmg, alias => 'munkitools', ensure => installed, source => $munki_download, notify => Exec[$bootstrap], } exec {$bootstrap : refreshonly => true, notify => Exec['/sbin/reboot'] } exec {'/sbin/reboot' : refreshonly => true, } file {"$managed_installs.plist" : ensure => present, owner => root, group => admin, } exec {"/usr/bin/defaults write $managed_installs SoftwareRepoURL "$server/munki_repo"" : before => Package['munkitools'], require => File["$managed_installs.plist"], } exec {"/usr/bin/defaults write $managed_installs ClientIdentifier "workstation"" : before => Package['munkitools'], require => File["$managed_installs.plist"], } exec {"/usr/bin/defaults write $managed_installs InstallAppleSoftwareUpdates -bool True" : before => Package['munkitools'], require => File["$managed_installs.plist"], } }