Développé par Lans de marionnettes, Fantoche est un outil de gestion de configuration open source utilisé pour automatiser et centraliser la configuration d’infrastructures telles que des serveurs, tout comme Ansible et Chef. Il facilite l’exécution simple de tâches répétitives qui seraient autrement lourdes et chronophages.
Puppet adopte une architecture client-serveur et comprend les aspects saillants suivants.
- Maître/serveur de marionnettes – Ce nœud contient toute la configuration nécessaire à la gestion des nœuds clients sur lesquels l’esclave marionnette est installé.
- Esclave Marionnette – Il s’agit des nœuds clients gérés dans votre environnement. Tous les esclaves sont gérés par le maître Puppet et l’agent Puppet est installé et en cours d’exécution.
- PuppetDB – Il s’agit d’une base de données qui stocke toutes les données générées par Puppet.
Dans ce guide, nous vous montrerons comment installer Maître de la marionnette et Agent dans les distributions basées sur RHEL telles que CentOS, Fedora, Rocky et AlmaLinux.
Configuration de l’environnement de laboratoire
Puppet Master Node with IP 139.144.20.170 - Rocky Linux 8 Puppet Slave with IP 45.79.206.178 - Ubuntu 22.04
Étape 1 : Configurer le nom d’hôte dans Puppet Master et Slave
Pour démarrer, connectez-vous à votre système et mettez à niveau les progiciels à l’aide de la commande dnf comme suit.
$ sudo dnf update -y
Ensuite, configurez un nom d’hôte pour vos nœuds, qui sera précieux tout au long de la configuration Fantoche sur votre système.
Pour le marionnettiste
$ sudo hostnamectl set-hostname puppetmaster.tecmint.com
Pour Marionnette Esclave
$ sudo hostnamectl set-hostname puppet-agent
Confirmez le nouveau nom d’hôte à l’aide du nom d’hôtectl commande:
$ hostnamectl
Ensuite, mettez à jour le /etc/hosts fichier pour les deux systèmes avec le nom d’hôte et les enregistrements DNS comme indiqué.
Basculez vers l’utilisateur root.
$ su -
Ensuite, mettez à jour le /etc/hosts fichier avec l’adresse IP et le nom d’hôte ou FQDN de votre système.
Pour le marionnettiste
# echo "139.144.20.170 puppetmaster.tecmint.com" >> /etc/hosts
Pour Marionnette Esclave
# echo "45.79.206.178 puppet-agent" >> /etc/hosts
Une fois les noms d’hôte et les enregistrements DNS configurés, passez à l’étape suivante.
Étape 2 : Ajouter un référentiel Puppet sur Puppet Master (Rocky Linux)
À installer Fantoche, nous devons ajouter son référentiel au système. Pour ce faire, exécutez la commande suivante.
$ sudo dnf install https://yum.puppet.com/puppet-release-el-8.noarch.rpm -y
Pour confirmer que le référentiel a bien été ajouté, exécutez la commande rpm :
$ rpm -qi puppet-release
De plus, assurez-vous d’ajouter également le référentiel EPEL comme indiqué.
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
Ensuite, activez le Outils électroportatifs référentiel qui fournit des outils de développement et des bibliothèques. Le référentiel fournit également une multitude de packages nécessaires en tant que dépendances lors de l’installation d’autres applications.
$ sudo dnf config-manager --set-enabled powertools
Pour vous assurer que le cache est entièrement à jour avec toutes les métadonnées en place, créez le cache comme indiqué.
$ sudo dnf makecache
Étape 3 : Installer Puppet sur Puppet Master (Rocky Linux)
Avant d’installer Fantocheassurez-vous que tous les référentiels requis ont été activés comme suit.
$ sudo dnf repolist
Ensuite, installez Serveur de marionnettes comme suit.
$ sudo dnf install puppetserver -y
La commande installe une multitude de packages, y compris Serveur Pupper et Agent, Java OpenJDK, Lua, NSS et bien d’autres. Vous trouverez ci-dessous la sortie de la commande.
Pour confirmer que le Serveur Pupper a été installé, exécutez la commande :
$ rpm -qi puppetserver
La commande imprime des informations détaillées telles que le nom, la version, la version, l’architecture et la date d’installation pour n’en citer que quelques-unes.
Étape 4 : Configurer le serveur maître Puppet (Rocky Linux)
Une fois Serveur de marionnettes est installé, l’étape suivante consiste à le configurer. Par conséquent, accédez au fichier de configuration principal de Puppet comme indiqué.
$ sudo vim /etc/puppetlabs/puppet/puppet.conf
Sous le [server]
section ajouter l’entrée DNS comme indiqué.
dns_alt_names=puppetmaster.tecmint.com,puppetmaster,puppetserver
De plus, ajoutez le [main]
section comme suit, où puppetmaster.tecmint.com est le FQDN ou le nom d’hôte de votre serveur de marionnettes.
[main] certname = puppetmaster.tecmint.com server = puppetmaster.tecmint.com environment = production runinterval = 1h
Voici à quoi ressemble notre configuration.
Enregistrez les modifications et quittez le fichier de configuration.
Étape 5 : Configurer l’allocation de mémoire JVM (facultatif)
Par défaut, 2 Go de JAVA la mémoire est allouée à Serveur maître de marionnettes. Si votre système ne dispose pas de suffisamment de mémoire, vous pouvez modifier le fichier de configuration du serveur et attribuer une valeur inférieure telle que 1 Go.
Par conséquent, accédez au fichier de configuration.
$ sudo vim /etc/sysconfig/puppetserver
Localisez ces arguments : -Xms2g -Xmx2g
et changer 2g pour 1g (moyens 1 Go).
Enregistrez les modifications et quittez le fichier de configuration.
Étape 6 : Démarrer et activer le serveur Puppet
Après avoir effectué toutes les modifications requises, démarrez le Serveur de marionnettes service comme indiqué.
$ sudo systemctl start puppetserver
Activez ensuite le service pour qu’il démarre au démarrage ou au démarrage du système.
$ sudo systemctl enable puppetserver
Pour vérifier que le serveur Puppet est en cours d’exécution, exécutez la commande :
$ sudo systemctl status puppetserver
La sortie suivante confirme que le serveur Puppet est en cours d’exécution.
Étape 7 : Démarrer et activer l’agent Puppet
La mise en place de Serveur de marionnettes installe également l’agent. Cependant, l’agent ne démarre pas automatiquement et vous devez le faire manuellement.
Pour démarrer l’agent marionnette, exécutez la commande.
$ sudo systemctl start puppet
Envisagez également d’activer l’agent pour qu’il démarre au démarrage.
$ sudo systemctl enable puppet
Maintenant, vérifiez si l’agent est actif et en cours d’exécution en exécutant la commande suivante.
$ sudo systemctl status puppet
Étape 8 : Autoriser le service Puppet dans le pare-feu
Une autre chose que vous devez considérer est d’autoriser le service Puppet à travers le pare-feu afin que le serveur soit accessible sur le réseau.
Pour ce faire, exécutez les commandes suivantes.
$ sudo firewall-cmd --add-service=puppetmaster --permanent $ sudo firewall-cmd --reload
Étape 9 : Ajouter le dossier binaire Puppet à $PATH
Les fichiers binaires de marionnettes sont situés dans /opt/puppetlabs/bin. Au moment de la rédaction de ce guide, le répertoire est déjà placé dans le $CHEMIN.
Pour le confirmer, lancez le printenv commande comme indiqué.
$ printenv | grep puppetlabs
Vous pouvez également vérifier cela comme indiqué.
$ which puppet /opt/puppetlabs/bin/puppet
Si pour une raison quelconque Fantoche n’est pas ajouté à $CHEMINpassez à l’utilisateur root
$ su -
Ensuite, exécutez les commandes suivantes pour l’ajouter à $CHEMIN.
# echo 'export PATH=$PATH:/opt/puppetlabs/bin' | tee -a ~/.bashrc # source ~/.bashrc
Étape 10 : Vérifier le serveur Puppet à l’aide du client Puppet
Pour confirmer que le Fantoche serveur fonctionne comme prévu, exécutez la commande :
$ sudo /opt/puppetlabs/bin/puppet agent --test --ca_server=puppetmaster.tecmint.com
La sortie suivante confirme que tout semble bon.
Vous pouvez également obtenir la même chose que l’utilisateur root, comme indiqué
# puppet agent -t
Pour afficher les certificats disponibles sur le Maître de la marionnette nœud, exécutez la commande suivante.
$ sudo /opt/puppetlabs/bin/puppetserver ca list --all
Jusqu’à présent, nous avons réussi à installer Serveur de marionnettes et Agent sur le nœud maître. Si c’est ce que vous cherchiez, alors vous avez terminé et dépoussiéré.
Cependant, nous avons mentionné que Puppet fonctionne dans une architecture client-serveur. Dans l’étape suivante, nous montrerons comment installer et configurer l’agent Puppet sur le nœud client.
Étape 11 : Installer et configurer l’agent Puppet sur l’esclave
Dans cette section, nous installerons Agent marionnette sur un Esclave Ubuntu nœud, puis établir la communication entre le Maître marionnettiste nœud et le Client.
Pour Ubuntu 22.04
$ wget https://apt.puppetlabs.com/puppet7-release-jammy.deb $ sudo dpkg -i puppet7-release-jammy.deb $ sudo apt update $ sudo apt install puppet-agent -y
Pour Ubuntu 20.04
$ wget https://apt.puppet.com/puppet7-release-focal.deb $ sudo dpkg -i puppet7-release-focal.deb $ sudo apt update $ sudo apt install puppet-agent -y
Une fois installé, accédez au fichier de configuration de l’agent.
$ sudo vim /etc/puppetlabs/puppet/puppet.conf
Ajoutez la section suivante.
[main] server = puppetmaster.tecmint.com
Enregistrez les modifications et quittez.
Pour appliquer les modifications, redémarrez le service de l’agent Puppet.
$ sudo systemctl restart puppet $ sudo systemctl enable puppet
Étape 12 : Connecter l’agent Puppet au serveur Puppet
La dernière étape consiste à établir une connexion entre le Serveur de marionnettes et le agent installé sur le système client. Pour ce faire, accédez au nœud client et générez des certificats que le maître Pupper doit signer.
$ sudo /opt/puppetlabs/bin/puppet agent -t
Vous recevrez une notification indiquant que le certificat n’a pas encore été signé.
Dirigez-vous vers le Maître des chiots node et lister les certificats en attente de signature. Ici, le certificat est répertorié comme puppet-agent.members.linode.com.
$ sudo /opt/puppetlabs/bin/puppetserver ca list
Signez maintenant le certificat à l’aide de la commande suivante :
$ sudo /opt/puppetlabs/bin/puppetserver ca sign --certname puppet-agent.members.linode.com
Enfin, revenez au nœud client et signez le certificat.
$ sudo /opt/puppetlabs/bin/puppet agent -t
Conclusion
Ceci nous amène à la fin de ce guide. Dans cet article, nous avons montré comment installer Maître de la marionnette et Agent sur les systèmes basés sur RHEL utilisant Rocheux Linux 8 nœuds dans notre configuration.