systemes:puppet_gestionnaire_configurations

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
systemes:puppet_gestionnaire_configurations [2016/07/12 17:24]
tribipod créée
systemes:puppet_gestionnaire_configurations [2019/02/06 14:03] (Version actuelle)
Ligne 80: Ligne 80:
 ===== Configuration du master ===== ===== Configuration du master =====
  
-**En cours de rédaction.**+La configuration de Puppet se fait dans **/etc/puppet**, c'est ici que vous allez définir votre site (réseau), vos nœuds (clients) et les modules (actions) à appliquer.
  
 +Puppet conseil de gérer ce répertoire avec un système de versionning (SVN, GIT, ...).
 +
 +Petit tour du propriétaire :
 +  * **/etc/puppet/manifests/site.pp** : Fichier référentiel de PuppetMaster. Il permet de définir son site (réseau), des variables globales et d'importer des modules (ensembles de classes) ainsi que des nœuds de votre réseau.
 +  * **/etc/puppet/manifests/node.pp** : Permet de définir les noeuds (clients) de votre réseau.
 +  * **/etc/puppet/modules/<module>/** : Dossier contenant la définition du module (action). Le fichier **/etc/puppet/modules/<module>/manifests/init.pp** contient la définition du module (les instructions à donner) et le répertoire **/etc/puppet/modules/<module>/files/** les fichiers nécessaires à l’exécution de ce module.
 +
 +==== => Définition de votre site (réseau) : ====
 +
 +La convention veut que le fichier **site.pp** contienne que des lignes d'import et la définition des variables globales.
 +<code bash>
 +filebucket {
 +    'main':
 +# Le nom du serveur Puppet (les clients doivent résoudre le nom FQDN du serveur)
 +        server => 'puppet-master'
 +}
 +File {
 +    backup => 'main'
 +}
 +
 +# Importation du fichier 'node.pp'
 +import "node"
 +</code>
 +
 +
 +==== => Définition des nœuds (clients) : ====
 +
 +Le fichier **node.pp** définit les configurations à appliquer sur les clients.
 +<code bash>
 +node 'puppet-srv1' {
 +# Importation du module 'common'
 +    include common
 +}
 +</code>
 +
 +==== => Définition des modules (actions) : ====
 +
 +Chaque module dispose de son propre dossier **/etc/puppet/modules/<module>/**.
 +
 +Il faut au préalable créer l'arborescence du module :
 +<code bash>
 +mkdir -p /etc/puppet/modules/common/files
 +mkdir -p /etc/puppet/modules/common/manifests
 +</code>
 +
 +Le manifest de classe 'common' va contenir la définition des actions à effectuer.
 +<code bash>
 +class common {
 +    file {
 +        "/etc/motd":
 +            owner => root,
 +            group => root,
 +            mode => 644,
 +            source => "puppet:///modules/common/motd"
 + }
 +}
 +</code>
 +
 +Le module 'common' va donc vérifier:
 +  * L'existence sur les clients du fichier /etc/motd
 +  * Appartenance à l'utilisateur root
 +  * Appartenance au groupe root
 +  * Avec les droits 644
 +  * Dont le contenu est égal au fichier de référence placé dans **/etc/puppet/modules/common/files/motd**
 +  
 +==== => Validation de la configuration ====
 +
 +Pour que le master valide la nouvelle configuration il faut relancer le service :
 +<code bash>
 +master$ service puppetmaster restart
 +</code>
 + 
 ===== Utilisation ===== ===== Utilisation =====
  
-**En cours de rédaction.**+Pour forcer la mise à jour de la configuration sur vos clients : 
 +<code bash> 
 +client$ puppet agent -t -v 
 +Info: Retrieving pluginfacts 
 +Info: Retrieving plugin 
 +Info: Caching catalog for puppet-srv1 
 +Info: Applying configuration version '1469706752' 
 +... 
 +Notice: Finished catalog run in 0.19 seconds 
 +</code> 
 +  
 +Si vous rencontrez un problème, vous pouvez lancer les commandes suivantes en fonction de votre position afin de comprendre d'où vient le problème. 
 +<code bash> 
 +client$ puppet agent -t -v -d 
 +</code> 
 +<code bash> 
 +master$ tail -f /var/log/daemon.log 
 +</code> 
 + 
 +===== Conclusions ===== 
 + 
 +Vous voilà prêt à utiliser cet outil qui vous fera gagner du temps dans le temps. 
 + 
 +Les explications et exemples de ce wiki sont assez sommaire, il est vraiment possible de faire beaucoup de chose intéressante tant au niveau configuration, mais également pour de la maintenance en lançant des commandes via le master. Vous trouverez plus d'infos sur la [[https://docs.puppet.com/|documentation du Puppet]]. 
 + 
 +De nombreux modules existent déjà sur [[https://forge.puppet.com/|Puppet Forge]], ce qui vous aidera à écrire votre module ou fera gagner du temps en trouvant votre bonheur.
  • systemes/puppet_gestionnaire_configurations.1468337062.txt.gz
  • Dernière modification: 2019/02/06 14:02
  • (modification externe)