Puppet
De Linuxmemo.
(→Modules) |
(→Modules) |
||
Ligne 62 : | Ligne 62 : | ||
*tester ses manifests | *tester ses manifests | ||
puppet apply /vagrant/manifests/helloworld.pp | puppet apply /vagrant/manifests/helloworld.pp | ||
+ | ==Class Declaration== | ||
+ | |||
+ | A class declaration occurs when a class is called in a manifest. A class declaration tells Puppet to evaluate the code within the class. Class declarations come in two different flavors: normal and resource-like. | ||
+ | |||
+ | A normal class declaration occurs when the include keyword is used in Puppet code, like so: | ||
+ | |||
+ | include example_class | ||
+ | |||
+ | This will cause Puppet to evaluate the code in example_class. | ||
+ | |||
+ | A resource-like class declaration occurs when a class is declared like a resource, like so: | ||
+ | |||
+ | class { 'example_class': } | ||
+ | |||
+ | Using resource-like class declarations allows you to specify class parameters, which override the default values of class attributes. If you followed the prerequisite tutorial, you have already used a resource-like class declaration ("apache" class) when you used the PuppetLabs Apache module to install Apache on host2: | ||
+ | |||
+ | node 'host2' { | ||
+ | class { 'apache': } # use apache module | ||
+ | apache::vhost { 'example.com': # define vhost resource | ||
+ | port => '80', | ||
+ | docroot => '/var/www/html' | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
==Modules== | ==Modules== | ||
https://forge.puppet.com/ | https://forge.puppet.com/ |
Version du 26 avril 2016 à 10:00
Sommaire |
Master
sudo apt-get install puppetserver
- Get the master’s names and certificates set up
vim /etc/puppet/puppet.conf dns_alt_names = sudo puppet master --verbose --no-daemonize
- Configure any necessary settings
- Put your Puppet modules and manifests in place
- Configure a production-ready web server
- Configure load balancing and CA service routing if you’re using multiple masters
- Start the puppet master service
Agent
sudo apt-get install puppet
Puppet manifest
block of the Puppet configuration language built-in resources
Users, Groups, Files, Hosts, Packages, Services,...and many more.
puppet resource --type #lister les type de ressouces
Déclaration de ressources
The format is always the same:
resource_type { 'resource_title': ensure => present, # usually 'present' or 'absent' attribute1 => 1234, # number attribute2 => 'value', # string attribute3 => ['red','blue'], # array noop => false, # boolean }
"resource_title" doit être unique. Si deux ressources porte le même nom, la deuxième de sera pas traitée. Il est possible de nommer une ressource "file" par le path entier du fichier.
Attributes (des ressources)
https://docs.puppet.com/puppet/latest/reference/type.html
Utilisation du langage de configuration de Puppet
- Variables
Le nom: start with $ name must start with a lower case letter, and may contain lower case letters, numbers, and underscores.)
$myvar # valid $MyVar # invalid $my_var # valid $my-var # invalid $_myvar # invalid $my3numbers # valid $3numbers # invalid
La valeur:
Boolean $not_true = false Integer $num_tokens = 115 String $my_name = 'Joe' Array[Integer] $my_list = [1,4,7] Array[String] [$first,$last] = ['Jo','Rhett'] Hash $key_pairs = {name => 'Joe', uid => 1001}
- Conditional Operators
- Regular Expressions
- Conditional Expressions
If / Elsif / Else Statements Unless / Else Statements Case Statements Selectors
- Lambda Blocks
Utilisation
- tester ses manifests
puppet apply /vagrant/manifests/helloworld.pp
Class Declaration
A class declaration occurs when a class is called in a manifest. A class declaration tells Puppet to evaluate the code within the class. Class declarations come in two different flavors: normal and resource-like.
A normal class declaration occurs when the include keyword is used in Puppet code, like so:
include example_class
This will cause Puppet to evaluate the code in example_class.
A resource-like class declaration occurs when a class is declared like a resource, like so:
class { 'example_class': }
Using resource-like class declarations allows you to specify class parameters, which override the default values of class attributes. If you followed the prerequisite tutorial, you have already used a resource-like class declaration ("apache" class) when you used the PuppetLabs Apache module to install Apache on host2:
node 'host2' { class { 'apache': } # use apache module apache::vhost { 'example.com': # define vhost resource port => '80', docroot => '/var/www/html' } }
Modules
puppet module search apache puppet module install puppetlabs-stdlib
build Build a module release package. changes Show modified files of an installed module. generate Generate boilerplate for a new module. install Install a module from the Puppet Forge or a release archive. list List installed modules search Search the Puppet Forge for a module. uninstall Uninstall a puppet module. upgrade Upgrade a puppet module.
Astuces
- version
- facter
facter --puppet