Puppet Module Management - lifuzu/cafe GitHub Wiki
###Install module:
sudo puppet module install username-modulename
like:
sudo puppet module install puppetlabs-stdlib
###List all installed modules:
sudo puppet module list
###Search module:
sudo puppet module search modulename
like:
sudo puppet module search cron
###Module command help:
sudo puppet help module
###Create a new module:
sudo puppet module generate username-modulename
like:
sudo puppet module generate puppet-cron
###Build the new module:
sudo puppet module build username-modulename
like:
sudo puppet module build puppet-cron
###Puppet module folder structure:
.../modules/<modulename>/manifests/init.pp
.../modules/<modulename>/files/
.../modules/<modulename>/templates/
.../modules/<modulename>/lib/
.../modules/<modulename>/spec/
like: /etc/puppet/modules/cron/manifests/init.pp
...
source => "puppet:///modules/cron/${conf_file}", # refer to the config file on puppetmaster
content -> template("ntp/${conf_file}.erb"), # refer to the config template on puppetmaster
###Declare module in the main manifest: /etc/puppet/manifests/site.pp
include cron
###Print config module path
sudo puppet master --configprint modulepath
###Run puppet with the manifest for standalone
sudo puppet apply /some/path/of/manifest.pp
like:
sudo puppet apply /tmp/puppet-cron.pp
###Run puppet with the master/agent model Add some statements in .../manifests/site.pp, like: /etc/puppet/manifests/site.pp
node default {
include cron
cron::daily{
'cleanup_space_daily':
minute => '0',
hour => '4',
user => 'username_here',
command => 'any_command_here';
}
}
(with module cron support, you can get it at: https://github.com/lifuzu/puppet-cron)
###Create RDoc for modules
sudo puppet doc --mode rdoc --outputdir ~/moduledocs --modulepath /etc/puppetlabs/puppet/modules
###Run puppet on agent
sudo puppet agent --test
sudo puppet agent status
sudo puppet agent stop
##REFERENCE:
http://docs.puppetlabs.com/learning/index.html
http://docs.puppetlabs.com/puppet/3/reference/modules_installing.html