Puppet

Un article de Casys (Canadian Sysadmins).

Version du 16 février 2009 à 14:55 par Pior (Discuter | Contributions)
(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

Sommaire

Installation

Centos

Attention : on peut trouver puppet dans les repos de rpmforge et de David Lutterkort. N'oublier pas de vérifier la provenance du paquet (par exemple --disablerepo=rpmforge)

Dans le cas ou puppet et puppetmaster n'ont pas la même version, il est conseillé d'avoir une version de puppetmaster plus récente.

Installation du serveur (puppetmaster)

Installation du repo de David Lutterkort (raisonnablement à récent)

cd /etc/yum.repos.d
wget http://people.redhat.com/dlutter/yum/dlutter.repo

Activer le repository qui convient

vi /etc/yum.repos.d/dlutter.repo

Installer puppet-server et ruby-rdoc pour l'aide

yum install puppet-server ruby-rdoc

Avant d'oublier

chkconfig puppetmaster on

On ouvre les portes

iptables -I INPUT -m tcp -p tcp -s <replace-here> --dport 8140 -j ACCEPT

Creation d'un manifest minimal

vi /etc/puppet/manifests/site.pp
node default {
}
service puppetmaster start

Configurer le serveur de fichier embarqué ici :

vi /etc/puppet/fileserver.conf

Le puppetmaster est installé

Installation du client (puppet)

Installation du repository : voir au dessus.

Installation :

yum install puppet ruby-rdoc

La configuration se passe ici :

vi /etc/sysconfig/puppet

Par défaut, puppet tente de joindre le serveur par le nom "puppet" donc si votre search dns est correct, puppet.monhostname.com fonctionnera.

Ajout d'un node

Chaque machine à configurer avec puppet est nommé "node". Le package puppet y est installé.

Pour que puppet ai le droit de récuperer les ordres de puppetmaster, il faut initier une première connection qui se terminera par un echec, puis aller signer le certificat que puppetmaster a enregistré.

Note: Le nom du node est le hostname que puppetmaster donne au moment de signer le certificat

Sur un node :

$ puppetd --server puppet.foubarre.com --test
notice: Did not receive certificate                                                                                                       
notice: Set to run 'one time'; exiting with no certificate

L'erreur est normal. Puppetmaster n'a pas autorisé un node qu'il ne connait pas. Mais il a enregistré la requête.

Sur le serveur, pour afficher la liste de requête:

$ puppetca --list

Pour signer une requête :

$ puppetca --sign puppet.foubarre.com

Au cas ou ça ne marche pas du premier coup, on peut effacer le certificat :

$ puppetca --clean puppet.foubarre.com
ou 
$ puppetca --clean all

Suite au prochain numéro