Puppet/fr

Puppet est un système de gestion de configuration écrit en Ruby. Il peut être utilisé pour automatiser le déploiement de machines.

Installation
Puppet est fourni par le paquet. Actuellement, il n'y a pas de distinction entre client et serveur, et l'installation de base est la même pour les deux.

Commencez par installer Puppet avec la commande emerge:

Configuration et mise en place
Puppet est configuré principalement via  dans un format de style  INI. Les commentaires sont indiqués avec un signe (#). Le fichier de configuration est divisé en plusieurs sections, ou blocs :


 * [main] contient les réglages qui agissent comme valeurs par défaut dans toutes les parties de Puppet, sauf si vous les redéfinissez dans l'une des sections suivantes :
 * [master] est utilisée pour les réglages qui s'appliquent à Puppetmaster (puppet master), ou l'outil CA (puppet cert)
 * [agent] est utilisé pour des réglages qui s'appliquent à l'agent Puppet (puppet agent)

Une explication plus approfondie, et une liste des blocs suivants utilisés est disponible dans la documentation officielle de Puppet.

Configuration du serveur (Puppetmaster)
La configuration par défaut placée par l'Ebuild dans peut être utilisée en l'état. Pour Puppet 2.7.3, les parties relatives au serveur ressemblent à ceci :

The default configuration put by the Ebuild into can be used as-is. For Puppet 2.7.3, the server-related parts look like this:

Configuration du serveur de fichiers
Pour pouvoir envoyer des fichiers aux clients, il faut configurer le serveur de fichiers. Ceci est fait dans. Par défaut, il n'y a pas de fichier à servir.

L'extrait de code ci-dessus définit un partage appelé files</tt> (souvenez-vous de cet identifiant, car il y sera fait référence par la suite), cherchant des fichiers dans et seulement disponible pour des hôtes dont l'adresse IP appartient au réseau 192.168.0.0/24. Vous pouvez utiliser des adresses IP, la notation CIDR et des noms d'hôtes (y compris le caractères passe-partout comme *.domain.invalid</tt>) ici. La commande deny</tt> peut être utilisée pour refuser explicitement l'accès à certains hôtes ou à certaines plages d'adresses IP.

Démarrer le démon Puppetmaster
Avec la configuration de base, aussi bien qu'avec une configuration initiale du serveur de fichiers, vous pouvez lancer le démon Puppetmaster à l'aide de sont script d'initialisation :

Lors du premier démarrage, Puppet génère un certificat SSL pour l'hôte Puppetmaster et le place dans le répertoire ssldir</tt> configuré plus haut.

Il écoute sur le port 8140/TCP. Assurez-vous qu'il n'y a pas de règles du pare-feu qui bloquent l'accès des clients.

Un manifeste simple
Les manifestes, dans la terminologie Puppet, sont des fichiers dans lesquels la configuration du client est spécifiée. La documentation contient un guide exhaustif sur le langage à balises des manifestes.

Comme exemple simple, créez un fichier message du jour(motd) sur le client. Sur Puppetmaster créez un fichier dans le partage files</tt> créé précédemment :

Vous devez alors créer le fichier manifeste principal dans le répertoire manifests</tt>. Il est appelé site.pp</tt> :

La définition du node par default</tt> (le nom pour un client) est utilisée au cas où il n'y aurait pas d'instruction node</tt> spécifique pour l'hôte. Nous utilisons une ressource file</tt> et voulons que le fichier sur nos  clients contienne la même chose que le fichier motd</tt> dans le partage files</tt> sur l'hôte puppet</tt>. Si votre puppetmaster n'est accessible qu'en utilisant un autre nom d'hôte, vous devez adapter l'URI source</tt> en conséquence.

Configuration du client
Lors de la première exécution de l'agent Puppet, vous devez attendre la signature de votre certificat par le puppetmaster. Pour demander un certificat, et lancer votre première configuration, exécutez :

Avant que le client ne puisse se connecter, vous devez autoriser la requête de certificat sur le serveur. Votre client devrait apparaître dans la liste des nœuds requérant un certificat :

Maintenant vous effectuez la requête :

Le client va vérifier toutes les 60 secondes si un certificat a déjà été émis. Après cela, il continue avec la première partie de la configuration :

Si vous apercevez ce message, tout s'est bien passé. Vous pouvez désormais vérifier le contenu de votre fichier  sur le client :

Vous pouvez maintenant démarrer l'agent puppet en tant que démon et faire en sorte qu'il soit lancé au démarrage :

Génération manuelle de certificats
Pour générer un certificat à la main, vous pouvez utiliser l'utilitaire puppet cert</tt>. Il placera tous les certificats générés dans le répertoire ssldir</tt> que vous avez défini dans la configuration de  puppet  et les signera avec la clé de votre autorité locale de certification Puppet (CA).

Un cas facile est celui de la génération d'un certificat avec seulement un nom commun.

Si vous avez besoin d'avoir de multiples noms d'hôte pour lesquels le certificat est valide, utilisez le paramètre <tt>--certdnsnames</tt> et  séparez les noms d'hôte additionnels par un caractère deux-points 

Cet exemple générera un certificat valide pour les trois noms d'hôte listés.

Gestion des slots avec puppet
Bien que le fournisseur de portage par défaut dans puppet ne prend pas en charge les slots, un plugin de tierce partie est disponible pour activer cette fonctionnalité dans puppet.

Ressources externes

 * Upstream website
 * Puppet Wiki