Installation Puppet Client
Pour tester ce qui suit, il est important de commencer par l’article sur installation de Puppet Server se trouvant ici
2. Installation de Puppet client sur differentes machines:
# Tester le hostname
puppet-client@hostname -f
# Résultat
puppet-client
# Modifier le FQN dans le fichier /etc/hosts en tant que root
# Avant
127.0.0.1 localhost 127.0.0.1 puppet-client
# Après
127.0.0.1 puppet-client.localhost.loc puppet-client
localhost 127.0.0.1 puppet-client
# Saugarder le fichier.
# Tester à nouveau le hostname:
puppet-client@hotsname -f
# Résultat
puppet-client.localhost.loc
# Installer puppet Client
puppet-client@aptitude install puppet
# J’essaie de contacter le serveur Puppet
puppet-client@puppetd --test --waitforcert 15
# Résultat:
info: Creating a new certificate request for puppet-client.localhost.loc
info: Creating a new SSL key at /var/lib/puppet/ssl/private_keys
/puppet-client.localhost.loc.pem err:
Could not find server : getaddrinfo: Name or service not known err:
Could not request certificate: Certificate retrieval failed: Could not find server puppet
# La machine cliente (puppet-client) n’a pas réussi à contacter le serveur,
# Je vais donc modifier le fichier /etc/hosts et lui indiquer l'adresse ip du serveur.
# Avant
127.0.0.1 puppet-client.localhost.loc puppet-client localhost
127.0.1.1 puppet-client
# The following lines are desirable for IPv6capable hosts ::1
localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0
ip6-mcastprefix ff02::1 ip6-allnodes ff02::2
ip6-allrouters ff02::3 ip6-allhosts
# Après
127.0.0.1 puppet-client.localhost.loc puppet-client localhost
127.0.1.1 puppet-client
192.168.0.114 puppet
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
# Résultat:
peer certificate won’t be verified in this SSL session notice: Did not receive certificate
notice: Set to run one time’; exiting with no certificate
# Cela signifie que le certificat de puppet-client n’existe pas sur le serveur (puppet-master).
# Je vais le créer.
Création du certificat sur puppet-master
# Je liste les certificats qui existent sur le serveur
puppet-master@puppetca --list
# Résultat:
puppet-client.localhost.loc
# Cela veut dire que puppet-client n’a pas de certificat sur puppet-master
# Je liste tous les certificats du serveur
puppetca --list --all
# Résultat:
puppet-client.localhost.loc
+ puppet-master.localhost.loc
# Ce qui signifie que seul puppet-master possède un certificat en local mais pas puppet-client
# Je crée le certificat de puppet-client depuis le serveur
puppet-master@puppetca --sign puppet-client.localhost.loc
# Résultat:
puppet-client.localhost.loc notice: Signed certificate request for
puppet-client.localhost.loc notice:
Removing file Puppet::SSL::CertificateRequest puppet-client.localhost.loc at
'/var/lib/puppet/ssl/ca/requests/puppet-client.localhost.loc.pem'
# J’affiche tous les certificats
puppetca --list --all
# Resultat :
puppet-client.localhost.loc puppet-master.localhost.loc
# Le certificat est bien créé Il faut refaire test depuis puppet-cleint, en essayant de recontacter le serveur:
puppet-client@puppetd --test --waitforcert 15
# Résultat :
warning: peer certificate wont be verified in this SSL session notice:Got signed certificate
info: Retrieving plugins err: /File[/var/lib/puppet/lib]: Failed to generate
additional resources
during transaction: Cannot access mount[plugins] err: /File[/var/lib/puppet/lib]:
Failed to retrieve current state of resource: Cannot access mount[plugins]Could not describe /plugins: Cannot access mount[plugins]
info: No classes to store info: Caching catalog at /var/lib/puppet/state/localconfig.yaml
notice: Starting catalog run notice: //File[/tmp/testfile]/ensure: createdinfo: Creating state file
/var/lib/puppet/state/state.yaml notice: Finished catalog run in 0.08 seconds
# Je tape la commande suivante
ls -l /tmp
# Le fichier existe sur puppet-client
# There is also a problem of plugin.
# To fixe this, go in /etc/puppet/puppet.conf
#Avant
[main] logdir=/var/log/puppet vardir=/var/lib/puppet ssldir=/var/lib/puppet/ssl rundir=/var/run/puppet factpath=$vardir/lib/facter pluginsync=true [puppetmasterd] templatedir=/var/lib/puppet/templates
# Après
[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter pluginsync=false
[puppetmasterd]
templatedir=/var/lib/puppet/templates
# Je refais le test
puppetd --test
# Résultat:
info: No classes to store info: Caching catalog at /var/lib/puppet/state/localconfig.yaml notice:
Starting catalog run notice: Finished catalog run in 0.08 seconds
# Je vais sur le serveur et je change le fichier manifest par défaut site.pp pour créer un autre fichier
# Avant
file { "/tmp/testfile": ensure => file }
# Après
file { "/tmp/testfile": ensure => file }
file { "/tmp/testnew": ensure => file }
#Sur puppet-client je lance la commande de test
# Test
puppet-client@puppetd --test
# Résultat:
info: No classes to store info: Caching catalog at /var/lib/puppet/state/localconfig.yaml
notice: Starting catalog run notice: //File[/tmp/testnew]/ensure: created
notice: Finished catalog run in 0.17 seconds
# Le nouveau fichier est bien créé sur puppet-client
Toutes les autres machines clientes sont installées de la même façon.
Vous trouverez des documentations ici:
Documentation de puppe:
http://docs.reductivelabs.com/
puppet dashbord sur lequel je vous présenterais dans un prochaine article:
http://www.puppetlabs.com/blog/a-tour-of-puppet-dashboard-0-1-0/
Le forum des utilisateurs de puppet:
http://groups.google.com/group/puppet-users?hl=en
