Puppet

De Linuxmemo.

(Différences entre les versions)
(Modules)
Ligne 59 : Ligne 59 :
*Lambda Blocks
*Lambda Blocks
-
==Utilisation==
 
-
*tester ses manifests
 
-
puppet apply /vagrant/manifests/helloworld.pp
 
==Class Declaration==
==Class Declaration==
Ligne 100 : Ligne 97 :
   uninstall    Uninstall a puppet module.
   uninstall    Uninstall a puppet module.
   upgrade      Upgrade a puppet module.
   upgrade      Upgrade a puppet module.
 +
 +
==Utilisation==
 +
*tester ses manifests
 +
puppet apply /vagrant/manifests/helloworld.pp
==Astuces==
==Astuces==

Version du 26 avril 2016 à 10:01

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

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

https://forge.puppet.com/

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.

Utilisation

  • tester ses manifests

puppet apply /vagrant/manifests/helloworld.pp

Astuces

  • version
  • facter
facter --puppet
Outils personnels