Outils personnels

Puppet : installation

De wikiGite

Révision datée du 17 septembre 2012 à 16:17 par Frank (discussion | contributions) (Page créée avec « == Installation v.2.7 == === Serveur === Sur Debian Squeeze : Ajouter une source backports # vi /etc/apt/sources.list.d/backports.list deb http://backports.debian.org/debi... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Installation v.2.7

Serveur

Sur Debian Squeeze :

Ajouter une source backports

# vi /etc/apt/sources.list.d/backports.list
deb http://backports.debian.org/debian-backports squeeze-backports main

Puis :

apt-get install-t squeeze-backports puppetmaster

Sur CentOS, ajouter la source rpmforge

yum install --enablerepo=rpmforge puppet-server

Client

Le client s'appelle "puppet" sur les deux distributions, dans les même dépôts.

Configuration

Serveur

Editer /etc/puppet/puppet.conf et ajouter dans la section [Main]

server=<NOM du serveur>

Attention, sur le serveur ce nom sera utilisé dans les clés SSL. Il doit correspondre au nom que présentera le serveur lors de la demande d'un puppet client.

Pour le connaitre, sur le serveur :

hostname -f

le nom exact renvoyé par la commande doit être connu des clients, vérifier par exemple par :

ping <NOM COMPLET RENVOYE PAR HOSTNAME -F>

Si les DNS ne permettre pas de la résoudre, l'ajouter dans le fichier /etc/hosts du client.

Clients

Initialiser les clés en lançant une première fois Puppet sur chaque client (Puppet discute en SSL entre serveur et clients)

puppetd -t -v -w 60
 info: Caching certificate for ca
 info: Creating a new SSL certificate request for client1
 info: Certificate Request fingerprint (md5): E2:D6:FB:1C:7C:36:96:D8:45:92:84:E3:71:F4:C6:BD
 info: Caching certificate for client1

Le programme attend alors la validation du certificat. Sur le serveur, on doit voir la clé en attente de validation :

puppetca --list
 "client1" (E2:D6:FB:1C:7C:36:96:D8:45:92:84:E3:71:F4:C6:BD)

On peut alors valider la clé de "client1" :

puppetca --sign client1
 notice: Signed certificate request for client1
 notice: Removing file Puppet::SSL::CertificateRequest client1 at '/var/lib/puppet/ssl/ca/requests/client1.pem'

Automatiser le démarrage de Puppet au lancement de la machine cliente

# vi /etc/default/puppet
  START=yes

Pour les tests, on ne lance pas le démon sur les clients, il est préférable de le lancer en avant-plan et en mode bavard, pour voir ce qui se passe :

puppetd -t -v

Utilisation

Créer les fichiers de configuration nécessaires sur le serveur : /etc/puppet/manifests/site.pp

filebucket { 'main': server => '<NOM COMPLET SERVEUR PUPPET' }
File { backup => 'main' }
import "node"

/etc/puppet/manifests/node.pp

node 'client1' {
    include dummy
}

"dummy" représente un module qu'on va créer :

mkdir -p /etc/puppet/modules/dummy/manifests
mkdir -p /etc/puppet/modules/dummy/files

Dans le répertoire files, on place un fichier "puppet.txt" pour nos tests. Ensuite créer /etc/puppet/modules/dummy/manifests/init.pp :

class dummy {
       file { "/etc/puppet.txt":
               owner => root,
               group => root,
               mode => 644,
               source => "puppet:///dummy/puppet.txt"
       }
}

Ce module va simplement vérifier sur le client l'existence du fichier /etc/puppet.txt, avec les bons droits, et le charger à partir du serveur si nécessaire.

On prend en compte cette nouvelle configuration :

service puppetmaster restart

Et on relance puppet sur le client pour vérifier que le fichier se crée

puppetd -t -v