Puppet Site:https://puppet.com/
Puppet Forge :https://forge.puppet.com/
git and puppet https://puppet.com/blog/how-to-use-git-commit-hooks-puppet-enterprise
Puppet variables=A variable hold the value for e.g. x=1 where x is a variable which holds value 1.
Example that displays how to create and use variable in puppet
class linux{ $admintools=['git','nano','othersoftware'] package { $admintools: ensure=>'installed', } }
Puppet selectors =A selector assigns one of a set of possible values to a defined variable based on the condition
$ntpservice= variable
$osfamily = one of the fact from puppet
$ntpservice=$osfamily ? { 'redhat' => 'ntpd', 'debian' => 'ntp', 'default' => 'ntp', }
How to use it?
Replace service {'ntpd': ensure=>'running', enable => true, } With service{$ntpservice: ensure => 'running', enable => true, }
Class in puppet != Object Oriented Programming (oop) class in puppet class represent a named collection of resources declaration such as variable, selector or any other puppet code. It is simply a code container. Class does help to maintain DRY(Don’t repeat yourself principle).
How to create a class in puppet?
class linux{ package{ 'ntp': ensure=> 'installed', } }
How to use/reuse a class?
node 'wiki'{ {class 'linux':} } node 'wikiexample'{ {class 'linux':} }
Use of If condition in puppet
//checking a condition if osfamily is redhat then install package otherwise skip the block of code if $osfamily=='redhat'{ package{'php-xml': ensure=>'present', } }
A complete example showing if condition, variable, selector and class usages in a file init.pp (,pp is the extension for the puppet file)
//define this code under init.pp class mediawiki{ $phpmysql=$osfamily ? { 'redhat' => 'php-mysql'. 'debian' => 'php5-mysql', default => 'php-mysql', } package{$phpmysql: ensure=>'present', } if $osfamily=='redhat'{ package{'php-xml': ensure=>'present', } } } //end of code for init.pp //create nodes.pp file node 'wiki'{ class {'mediawiki':} } node 'wikiTest'{ class {'mediawiki':} } node 'wikiStage'{ class {'mediawiki':} } node 'wikiProd'{ class {'mediawiki':} }
RESOURCE_TYPE { TITLE: ATTRIBUTE => VALUE, ... }
Puppet Commands:
List all certificates
puppet cert list --all # This code will show list of certificates
puppet cert sing -a #Sign all certificate