Installing and configuring Munki with Puppet

VertigoRay/ July 25, 2013/ Uncategorized/ 0 comments

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"],
	}
}

Leave a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*