<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wikiold.home.tartarefr.eu/index.php?action=history&amp;feed=atom&amp;title=Deploy%2FPuppet</id>
	<title>Deploy/Puppet - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wikiold.home.tartarefr.eu/index.php?action=history&amp;feed=atom&amp;title=Deploy%2FPuppet"/>
	<link rel="alternate" type="text/html" href="https://wikiold.home.tartarefr.eu/index.php?title=Deploy/Puppet&amp;action=history"/>
	<updated>2026-07-07T13:57:25Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wikiold.home.tartarefr.eu/index.php?title=Deploy/Puppet&amp;diff=916&amp;oldid=prev</id>
		<title>Didier : Page créée avec « = Introduction = Ce document décrit le déroulement de l&#039;installation pas à pas de puppet.  Puppet permet d&#039;automatiser un grand nombre de tache d&#039;administration, comme l&#039;i... »</title>
		<link rel="alternate" type="text/html" href="https://wikiold.home.tartarefr.eu/index.php?title=Deploy/Puppet&amp;diff=916&amp;oldid=prev"/>
		<updated>2012-10-02T13:56:00Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « = Introduction = Ce document décrit le déroulement de l&amp;#039;installation pas à pas de puppet.  Puppet permet d&amp;#039;automatiser un grand nombre de tache d&amp;#039;administration, comme l&amp;#039;i... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Introduction =&lt;br /&gt;
Ce document décrit le déroulement de l&amp;#039;installation pas à pas de puppet.&lt;br /&gt;
&lt;br /&gt;
Puppet permet d&amp;#039;automatiser un grand nombre de tache d&amp;#039;administration, comme l&amp;#039;installation de logiciels, de services ou encore de modifier des fichiers.Puppet permet de faire cela de manière centralisée ce qui permet d&amp;#039;administrer et de mieux contrôler un grand nombre de serveur hétérogènes ou homogènes.Puppet fonctionne en mode Client / Serveur. Sur chaque machine un client va être installé et c&amp;#039;est lui qui va contacter le PuppetMaster, le serveur, par le biais de communication HTTPS, et donc SSL, un système pki est fourni.&lt;br /&gt;
&lt;br /&gt;
Puppet a été développé en Ruby le rendant multiplateforme : bsd (free, MACos ...) ,linux (redhat, debian, suse ...), sun (opensolaris ...)&lt;br /&gt;
&lt;br /&gt;
[http://reductivelabs.com/ Reductive Labs], la société éditant Puppet, a développé un produit complémentaire, nommé Facter.Cette application permet de lister des éléments propres aux systèmes administrés, comme le nom de machine, l&amp;#039;adresse ip, la distribution, des variables d&amp;#039;environnement utilisables dans les templates de puppet. Puppet gère les templates.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
== Installation du serveur ( puppetmaster ) ==&lt;br /&gt;
 yum install puppet puppet-server&lt;br /&gt;
&lt;br /&gt;
== Installation des clients ==&lt;br /&gt;
 yum install puppet&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
== Configuration du Serveur ==&lt;br /&gt;
Il est à noter que puppetca.conf et puppetmasterd.conf sont des liens symboliques sur le fichier puppetd.conf&lt;br /&gt;
&lt;br /&gt;
Fichier &amp;lt;path&amp;gt;puppetd.conf&amp;lt;/path&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [puppet]&lt;br /&gt;
     # Where Puppet stores dynamic and growing data.&lt;br /&gt;
     # The default value is &amp;#039;/var/puppet&amp;#039;.&lt;br /&gt;
     vardir = /var/lib/puppet&lt;br /&gt;
 &lt;br /&gt;
     # The Puppet log directory.&lt;br /&gt;
     # The default value is &amp;#039;$vardir/log&amp;#039;.&lt;br /&gt;
     logdir = /var/log/puppet&lt;br /&gt;
 &lt;br /&gt;
     # Where Puppet PID files are kept.&lt;br /&gt;
     # The default value is &amp;#039;$vardir/run&amp;#039;.&lt;br /&gt;
     rundir = /var/run/puppet&lt;br /&gt;
 &lt;br /&gt;
     # Where SSL certificates are kept.&lt;br /&gt;
     # The default value is &amp;#039;$confdir/ssl&amp;#039;.&lt;br /&gt;
     ssldir = $vardir/ssl&lt;br /&gt;
 &lt;br /&gt;
 #    factpath = $vardir/lib/facter&lt;br /&gt;
 #    pluginsync = true&lt;br /&gt;
  &lt;br /&gt;
 [puppetd]&lt;br /&gt;
     # The file in which puppetd stores a list of the classes&lt;br /&gt;
     # associated with the retrieved configuratiion.  Can be loaded in&lt;br /&gt;
     # the separate ``puppet`` executable using the ``--loadclasses``&lt;br /&gt;
     # option.&lt;br /&gt;
     # The default value is &amp;#039;$confdir/classes.txt&amp;#039;.&lt;br /&gt;
     classfile = $vardir/classes.txt&lt;br /&gt;
 &lt;br /&gt;
     # Where puppetd caches the local configuration.  An&lt;br /&gt;
     # extension indicating the cache format is added automatically.&lt;br /&gt;
     # The default value is &amp;#039;$confdir/localconfig&amp;#039;.&lt;br /&gt;
     localconfig = $vardir/localconfig&lt;br /&gt;
 &lt;br /&gt;
     templatedir = $vardir/templates&lt;br /&gt;
&lt;br /&gt;
Puppet utilise des certificats et est donc sensible à la résolution de nom. Il faut éditer le fichier /etc/hosts afin de renseigner tous les hosts qui vont se servir de puppet.&lt;br /&gt;
&lt;br /&gt;
On va maintenant autoriser les hôtes distants à se connecter au puppetmaster en ajoutant une ligne par host géré celui-ci au fichier &amp;lt;path&amp;gt;fileserver.conf&amp;lt;/path&amp;gt;&lt;br /&gt;
 allow 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
On créer l&amp;#039;arborescence nécessaire au puppetmaster&lt;br /&gt;
 mkdir /etc/puppet/manifests/classes&lt;br /&gt;
 mkdir /var/lib/puppet/facter&lt;br /&gt;
 mkdir /var/lib/puppet/files&lt;br /&gt;
 mkdir /var/lib/puppet/templates&lt;br /&gt;
 chown puppet:puppet /var/lib/puppet/*&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant créer la configuration initiale de puppet, sans cela, le daemon ne se lance pas.&lt;br /&gt;
&lt;br /&gt;
Fichier &amp;lt;path&amp;gt;/etc/puppet/manifests/site.pp&amp;lt;/path&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 import &amp;quot;classes/*&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 node default {&lt;br /&gt;
         include sudo&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Fichier &amp;lt;path&amp;gt;/etc/puppet/manifests/classes/sudo.pp&amp;lt;/path&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # /etc/puppet/manifests/classes/sudo.pp&lt;br /&gt;
 &lt;br /&gt;
 class sudo {&lt;br /&gt;
         file { &amp;quot;/etc/sudoers&amp;quot;:&lt;br /&gt;
                 owner =&amp;gt; &amp;quot;root&amp;quot;,&lt;br /&gt;
                 group =&amp;gt; &amp;quot;root&amp;quot;,&lt;br /&gt;
                 mode  =&amp;gt; 440,&lt;br /&gt;
                 content =&amp;gt; template(&amp;quot;sudoers.erb&amp;quot;)&lt;br /&gt;
         }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
et on place une copie du fichier /etc/sudoers dans le répertoire de templates&lt;br /&gt;
&lt;br /&gt;
 cp /etc/sudoers /var/lib/puppet/templates/sudoers.erb&lt;br /&gt;
&lt;br /&gt;
On peut maintenant lancer le serveur.&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/puppetmaster start&lt;br /&gt;
&lt;br /&gt;
le fichier &amp;lt;path&amp;gt;/etc/sysconfig/puppetmaster&amp;lt;/path&amp;gt; n&amp;#039;a pas besoin d&amp;#039;être modifié&lt;br /&gt;
&lt;br /&gt;
== Configuration des clients ==&lt;br /&gt;
Fichier &amp;lt;path&amp;gt;/etc/sysconfig/puppet&amp;lt;/path&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # The puppetmaster server&lt;br /&gt;
 PUPPET_SERVER=ld1.b2pweb.com&lt;br /&gt;
 &lt;br /&gt;
 # If you wish to specify the port to connect to do so here&lt;br /&gt;
 #PUPPET_PORT=8140&lt;br /&gt;
 &lt;br /&gt;
 # Where to log to. Specify syslog to send log messages to the system log.&lt;br /&gt;
 PUPPET_LOG=/var/log/puppet/puppet.log&lt;br /&gt;
 &lt;br /&gt;
 # You may specify other parameters to the puppet client here&lt;br /&gt;
 #PUPPET_EXTRA_OPTS=--waitforcert=500&lt;br /&gt;
&lt;br /&gt;
Mais avant de lancer le daemon, on va l&amp;#039;essayer&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
 puppetd --test --waitforcert 60 --verbose --debug --server=ld1.bdfweb.com&lt;br /&gt;
&lt;br /&gt;
Le programme bloque sur un problème de certificat non-signé. En effet celui-ci généré au premier lancement de puppetd, et n&amp;#039;a pas encore été signer par le serveur. On arrête le programme avec un petit [Ctrl-C].&lt;br /&gt;
&lt;br /&gt;
== Firewall ==&lt;br /&gt;
&lt;br /&gt;
Les ports 8139 et 8140 doivent être ouverts sur le serveur et les clients.&lt;br /&gt;
&lt;br /&gt;
= Démarrage du service =&lt;br /&gt;
== Acceptation des clients par le serveur ==&lt;br /&gt;
Sur le serveur, on lance&lt;br /&gt;
&lt;br /&gt;
 puppetca --list&lt;br /&gt;
&lt;br /&gt;
pour visualiser tous les hosts qui n&amp;#039;ont pas encore de certificat signé par le serveur.&lt;br /&gt;
&lt;br /&gt;
On les signe un par un avec&lt;br /&gt;
&lt;br /&gt;
 puppetca --sign CERTIFICAT-NAME&lt;br /&gt;
&lt;br /&gt;
ou tous en même temps&lt;br /&gt;
&lt;br /&gt;
 puppetca --sign --all&lt;br /&gt;
&lt;br /&gt;
Maintenant on peut lancer le daemon puppetd sur tous les clients.&lt;br /&gt;
&lt;br /&gt;
== Problèmes éventuels ==&lt;br /&gt;
Lors de la réinstallation d&amp;#039;un hôte, les certificats ne correspondent plus.&lt;br /&gt;
&lt;br /&gt;
 err: Could not request certificate: Retrieved certificate does not match private key; please remove certificate from server and regenerate it with the current key&lt;br /&gt;
&lt;br /&gt;
Il faut donc purger cet hôte sur le serveur&lt;br /&gt;
&lt;br /&gt;
 puppetca --clean HOST&lt;br /&gt;
&lt;br /&gt;
Sur le client, il faut effacer récursivement tous les fichiers du répertoire /var/lib/puppet/ssl, puis lancer le daemon en mode standalone.&lt;br /&gt;
&lt;br /&gt;
 puppetd --test --waitforcert 60 --verbose --debug --server=ld1.bdfweb.com&lt;/div&gt;</summary>
		<author><name>Didier</name></author>
	</entry>
</feed>