Différences
Ci-dessous, les différences entre deux révisions de la page.
systemes:puppet_gestionnaire_configurations [2016/07/28 12:32] tribipod [Configuration du master] |
systemes:puppet_gestionnaire_configurations [2019/02/06 14:03] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Puppet : Gestionnaire de configurations ====== | ||
- | ===== Introduction ===== | ||
- | |||
- | Puppet est un gestionnaire de configurations des serveurs en centralisant les configurations des serveurs esclaves sur un serveur maître, il permet ainsi d' | ||
- | |||
- | Puppet est simple d' | ||
- | |||
- | ===== Installation ===== | ||
- | |||
- | La procédure suivante a été validé sur un ensemble Debian 8.5 64 bits et Puppet en version 3.7.2. | ||
- | |||
- | Avant tout, lancé un ' | ||
- | |||
- | Les commandes sont à lancer en root ou précédées de ' | ||
- | |||
- | ==== => Installation du serveur Puppet (master) ==== | ||
- | |||
- | L' | ||
- | <code bash> | ||
- | master$ apt-get install puppetmaster | ||
- | </ | ||
- | Afin de vérifier que le service soit bien lancé : | ||
- | <code bash> | ||
- | master$ service puppetmaster status | ||
- | master is running. | ||
- | </ | ||
- | |||
- | ==== => Installation d'un client Puppet (slave) ==== | ||
- | |||
- | L' | ||
- | <code bash> | ||
- | slave$ apt-get install puppet | ||
- | </ | ||
- | |||
- | ===== Utilisation derrière un pare-feu ===== | ||
- | |||
- | Puppet communique sur le port TCP/8140 qui est le port par défaut. | ||
- | |||
- | Si vos serveurs sont protégés par iptables il faut alors ouvrir le port. | ||
- | <code bash> | ||
- | iptables -A OUTPUT -p tcp -m state --state NEW, | ||
- | iptables -A INPUT -p tcp -m state --state NEW, | ||
- | </ | ||
- | Ou alors, vous pouvez le faire encore plus finement en ajoutant les IP (Attention au nombre de serveurs). | ||
- | <code bash> | ||
- | iptables -A OUTPUT -p tcp -m state --state NEW, | ||
- | iptables -A INPUT -p tcp -m state --state NEW, | ||
- | </ | ||
- | |||
- | ===== Configuration des clients ===== | ||
- | |||
- | Pour fonctionner le slave à besoin de connaître l' | ||
- | <code bash> | ||
- | server=ADRESSE_MASTER | ||
- | </ | ||
- | Une fois effectué, il faut initialiser une seule fois la connexion sécurisé entre le slave et le master. | ||
- | <code bash> | ||
- | slave$ puppet agent -t -v -w 60 | ||
- | |||
- | Info: Caching certificate for ca | ||
- | Info: csr_attributes file loading from / | ||
- | Info: Creating a new SSL certificate request for puppet-srv1 | ||
- | Info: Certificate Request fingerprint (SHA256): EA: | ||
- | Info: Caching certificate for ca | ||
- | </ | ||
- | Ensuite, sur le master, on affiche la liste des certificats en attentes de validation. | ||
- | <code bash> | ||
- | master$ puppet cert --list | ||
- | " | ||
- | </ | ||
- | Un slave du nom de " | ||
- | <code bash> | ||
- | master$ puppet cert --sign puppet-srv1 | ||
- | |||
- | notice: Signed certificate request for puppet-srv1 | ||
- | notice: Removing file Puppet:: | ||
- | </ | ||
- | |||
- | ===== Configuration du master ===== | ||
- | |||
- | La configuration de Puppet se fait dans **/ | ||
- | |||
- | Puppet conseil de gérer ce répertoire avec un système de versionning (SVN, GIT, ...). | ||
- | |||
- | Petit tour du propriétaire : | ||
- | * **/ | ||
- | * **/ | ||
- | * **/ | ||
- | |||
- | ==== => Définition de votre site (réseau) : ==== | ||
- | La convention veut que le fichier **site.pp** contienne que des lignes d' | ||
- | <code bash> | ||
- | filebucket { | ||
- | ' | ||
- | # Le nom du serveur Puppet (les clients doivent résoudre le nom FQDN du serveur) | ||
- | server => ' | ||
- | } | ||
- | File { | ||
- | backup => ' | ||
- | } | ||
- | |||
- | # Importation du fichier ' | ||
- | import " | ||
- | </ | ||
- | |||
- | |||
- | ==== => Définition de vos nœuds (clients) : ==== | ||
- | Le fichier **node.pp** définit les configurations à appliquer sur les clients. | ||
- | <code bash> | ||
- | node ' | ||
- | # Importation du module ' | ||
- | include common | ||
- | } | ||
- | </ | ||
- | |||
- | ==== => Définition des modules (actions) : ==== | ||
- | Chaque module dispose de son propre dossier **/ | ||
- | |||
- | Il faut au préalable créer l' | ||
- | <code bash> | ||
- | mkdir -p / | ||
- | mkdir -p / | ||
- | </ | ||
- | |||
- | Le manifest de classe ' | ||
- | <code bash> | ||
- | class common { | ||
- | file { | ||
- | "/ | ||
- | owner => root, | ||
- | group => root, | ||
- | mode => 644, | ||
- | source => " | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | Le module ' | ||
- | * L' | ||
- | * Appartenance à l' | ||
- | * Appartenance au groupe root | ||
- | * Avec les droits 644 | ||
- | * Dont le contenu est égal au fichier de référence placé dans **/ | ||
- | | ||
- | ==== => Validation de la configuration ==== | ||
- | |||
- | Pour que le master valide la nouvelle configuration il faut relancer le service : | ||
- | <code bash> | ||
- | master$ service puppetmaster restart | ||
- | </ | ||
- | |||
- | ===== Utilisation ===== | ||
- | |||
- | **En cours de rédaction.** |