ReleaseEngineering/PuppetAgain/Modules/puppet: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
Line 4: Line 4:


= puppet::periodic =
= puppet::periodic =
This runs puppet the "normal" way - puppet consults the puppetmaster every 30m or so.  It is used for any subclass of <tt>toplevel::server</tt>.
If <tt>/etc/puppet/standalone</tt> file exists it runs puppet in "apply" (standalone) mode by running <tt>/etc/puppet/update.sh</tt>. Otherwise this runs puppet the "normal" way - puppet consults the puppetmaster every 30m or so.  It is used for any subclass of <tt>toplevel::server</tt>.
 
At the moment "standalone" method is iused by <tt>toplevel::server::puppetmaster::standalone</tt>.


= puppet::atboot =
= puppet::atboot =
This runs puppet at boot.  It is used for any subclass of <tt>toplevel::slave</tt>.  On Linux, the startup process blocks until puppet has run successfully, and reboots after a number of unsuccessful runs.  On OS X, launchd does not allow one process to block another, so the puppet process runs puppet (as root) repeatedly until it is successful, and then touches a sentinel file that indicates to the buildslave process that it is safe to start.  See [[ReleaseEngineering/Buildslave Startup Process]] for more details.
This runs puppet at boot.  It is used for any subclass of <tt>toplevel::slave</tt>.  On Linux, the startup process blocks until puppet has run successfully, and reboots after a number of unsuccessful runs.  On OS X, launchd does not allow one process to block another, so the puppet process runs puppet (as root) repeatedly until it is successful, and then touches a sentinel file that indicates to the buildslave process that it is safe to start.  See [[ReleaseEngineering/Buildslave Startup Process]] for more details.

Revision as of 16:37, 22 August 2012

This module handles installing, updating, and running puppet.

The puppet class is imported in toplevel::base, and takes care of installing and configuring puppet. Releng uses two modes of puppet startup, so there are two classes that must *also* be included to make sure puppet actually runs.

puppet::periodic

If /etc/puppet/standalone file exists it runs puppet in "apply" (standalone) mode by running /etc/puppet/update.sh. Otherwise this runs puppet the "normal" way - puppet consults the puppetmaster every 30m or so. It is used for any subclass of toplevel::server.

At the moment "standalone" method is iused by toplevel::server::puppetmaster::standalone.

puppet::atboot

This runs puppet at boot. It is used for any subclass of toplevel::slave. On Linux, the startup process blocks until puppet has run successfully, and reboots after a number of unsuccessful runs. On OS X, launchd does not allow one process to block another, so the puppet process runs puppet (as root) repeatedly until it is successful, and then touches a sentinel file that indicates to the buildslave process that it is safe to start. See ReleaseEngineering/Buildslave Startup Process for more details.