Puppet pour les nuls
Après quelques temps à m’intéresser à Puppet, j’ai finalement décidé de sauter le pas et de commencer à le déployer pour remplacer notre architecture cfengine dont on commence à toucher les limites.
Après avoir passé pas mal de temps à potasser la doc et à demander plein de trucs à Google, voici donc les quelques points qui m’ont posé problème. Attention, tout ceci concerne une infrastructure à base de CentOS 4 et 5, avec le serveur sous CentOS 5. Puppet lui-même est installé depuis EPEL.
Organisation
Dans le fichier site.pp, on définit juste des classes « conteneurs » comme suit :
class lamp {
include php
include mysql
}
Les autres classes sont définies dans des fichiers à part (php dans classes/php.pp et ainsi de suite). Ça, c’est une convention plus qu’autre chose mais en pratique ça aide à avoir les idées claires.
LDAP
J’utilise LDAP pour stocker les infos relatives aux clients. Pour que ça fonctionne, il faut :
- installer ruby-ldap sur le serveur
- ajouter, toujours sur le serveur, un fichier /etc/puppet/puppetmasterd.conf avec le contenu suivant :
[main]
vardir = /var/lib/puppet
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = $vardir/ssl
[puppermasterd]
node_terminus = ldap
ldapserver = ldap.ircam.fr
ldapbase = ou=Hosts,dc=ircam,dc=fr
Pour les clients, tout se passe dans l’annuaire lui-même : on leur ajoute la classe puppetClient et un champ puppetclass qui contient la liste des classes.
dn: cn=system.ircam.fr,ou=virtuels,ou=Hosts,dc=ircam,dc=fr puppetclass: lamp
Pour le moment, le noeud default est encore en dur dans site.pp, ça râle dans les logs de puppetmasterd, il faudra le pousser dans LDAP un jour ou l’autre.
You must be logged in to post a comment.