Installer Puppet Master et Agent sur Ubuntu 20.04

Puppet est un moteur d’administration automatisé gratuit et open-source pour les systèmes d’exploitation Linux, Unix et Windows. Il est utilisé pour déployer, configurer et gérer des serveurs et effectue des tâches administratives telles que l’ajout d’utilisateurs, l’installation de paquets, et bien d’autres encore. Il aide les administrateurs système à libérer du temps et de l’espace mental en automatisant les tâches sur des milliers de machines physiques et virtuelles. Il utilise un modèle client-serveur. Le maître de Puppet contrôle les informations de configuration pour les agents Puppet tandis que les agents Puppet communiquent avec le maître de Puppet et récupèrent les profils de configuration.

Dans ce tutoriel, nous allons expliquer comment installer un serveur et un agent Puppet sur un serveur Ubuntu 20.04.

Conditions préalables

  • Deux serveurs exécutant Ubuntu 20.04.
  • Un mot de passe root est configuré sur les deux serveurs.

Pour commencer

Tout d’abord, tu dois mettre à jour tous les paquets sur les systèmes Puppet master et Puppet client. Tu peux les mettre à jour en exécutant la commande suivante :

apt-get update -y

Une fois que tous les paquets sont à jour, tu peux passer à l’étape suivante.

Configurer la résolution du nom d’hôte

Ensuite, tu devras configurer le nom d’hôte sur les deux nœuds. Ainsi, chaque nœud peut communiquer avec l’autre par son nom d’hôte. Tu peux le faire en modifiant le fichier /etc/hosts sur les deux nœuds :

nano /etc/hosts

Ajoute les lignes suivantes sur les deux nœuds :

puppet-master-ip puppetmaster puppet
puppet-client-ip puppetclient

Enregistre et ferme le fichier lorsque tu as terminé. Ensuite, tu peux passer à l’étape suivante.

Installe le serveur Puppet

Tout d’abord, tu dois installer le serveur Puppet sur le nœud maître. Par défaut, le paquet Puppet n’est pas disponible dans le dépôt par défaut d’Ubuntu 20.04. Tu devras donc installer le référentiel Puppet dans ton serveur.

Tout d’abord, télécharge la dernière version de Puppet avec la commande suivante :

wget https://apt.puppetlabs.com/puppet6-release-focal.deb

Une fois le paquet téléchargé, installe-le en exécutant la commande suivante :

dpkg -i puppet6-release-focal.deb

Une fois l’installation terminée, mets à jour le référentiel et installe le serveur Puppet en exécutant la commande suivante :

apt-get update -y
apt-get install puppetserver -y

Après avoir installé le serveur Puppet, tu devras modifier la taille d’allocation de la mémoire du processus Java de Puppet. Tu peux le faire en modifiant le fichier /etc/default/puppetserver :

nano /etc/default/puppetserver

Change la taille de la mémoire à 1g comme indiqué ci-dessous :

JAVA_ARGS="-Xms1g -Xmx1g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"

Enregistre et ferme le fichier lorsque tu as terminé. Ensuite, démarre le service Puppet et active-le pour qu’il démarre au redémarrage du système avec la commande suivante :

systemctl start puppetserver
systemctl enable puppetserver

Ensuite, tu peux vérifier l’état du service Puppet avec la commande suivante :

systemctl status puppetserver

Tu devrais voir la commande suivante :

? puppetserver.service - puppetserver Service
     Loaded: loaded (/lib/systemd/system/puppetserver.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 09:33:55 UTC; 3s ago
    Process: 3673 ExecStart=/opt/puppetlabs/server/apps/puppetserver/bin/puppetserver start (code=exited, status=0/SUCCESS)
   Main PID: 3715 (java)
      Tasks: 42 (limit: 4915)
     Memory: 962.3M
     CGroup: /system.slice/puppetserver.service
             ??3715 /usr/bin/java -Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger -XX:OnOutOfMemoryError="kill>

Sep 05 09:33:08 puppetmaster systemd[1]: Starting puppetserver Service...
Sep 05 09:33:55 puppetmaster systemd[1]: Started puppetserver Service.

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installer et configurer l’agent Puppet

À ce stade, le serveur Puppet est installé et configuré. Maintenant, tu dois installer l’agent Puppet sur le nœud client.

Tout d’abord, télécharge et installe le référentiel Puppet avec la commande suivante :

wget https://apt.puppetlabs.com/puppet6-release-focal.deb
dpkg -i puppet6-release-focal.deb

Ensuite, mets à jour le référentiel et installe l’agent Puppet en exécutant la commande suivante :

apt-get update -y
apt-get install puppet-agent -y

Après avoir installé l’agent Puppet, tu devras modifier le fichier de configuration de Puppet et définir les informations du maître Puppet :

nano /etc/puppetlabs/puppet/puppet.conf

Ajoute les lignes suivantes :

[main]
certname = puppetclient
server = puppetmaster

Sauvegarde et ferme le fichier lorsque tu as terminé. Ensuite, démarre le service de l’agent Puppet et active-le pour qu’il démarre au démarrage avec la commande suivante :

systemctl start puppet
systemctl enable puppet

Ensuite, vérifie le statut de Puppet avec la commande suivante :

systemctl status puppet

Tu devrais obtenir la sortie suivante :

? puppet.service - Puppet agent
     Loaded: loaded (/lib/systemd/system/puppet.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 09:43:15 UTC; 22s ago
   Main PID: 1435 (puppet)
      Tasks: 2 (limit: 2353)
     Memory: 52.8M
     CGroup: /system.slice/puppet.service
             ??1435 /opt/puppetlabs/puppet/bin/ruby /opt/puppetlabs/puppet/bin/puppet agent --no-daemonize

Sep 05 09:43:15 puppetagent systemd[1]: Started Puppet agent.

À ce stade, l’agent Puppet est installé et configuré. Tu peux maintenant passer à l’étape suivante.

Signer le certificat de l’agent Puppet

Puppet utilise une architecture client-serveur, tu devras donc approuver une demande de certificat pour chaque nœud d’agent avant de pouvoir le configurer.

Sur le nœud maître de Puppet, exécute la commande suivante pour répertorier tous les certificats :

/opt/puppetlabs/bin/puppetserver ca list

Tu devrais voir la sortie suivante :

Requested Certificates:
    puppetclient       (SHA256)  A4:9A:E9:87:8B:54:0A:4F:A0:78:65:1A:3C:99:B5:EC:31:9E:BB:4C:17:8A:50:16:E9:1E:3D:D6:27:74:89:85
    puppetmaster       (SHA256)  E9:25:4C:51:4E:47:D7:44:11:1F:C5:A9:4E:96:D9:E8:3A:EB:A0:01:48:06:B5:EF:3F:C4:09:03:90:3E:D8:2D

Maintenant, signe tous les certificats avec la commande suivante :

/opt/puppetlabs/bin/puppetserver ca sign --all

Tu devrais obtenir le résultat suivant :

Successfully signed certificate request for puppetclient
Successfully signed certificate request for puppetmaster

Maintenant, Puppet master peut communiquer et contrôler le nœud agent.

Sur le nœud d’agent Puppet, teste la communication entre le maître Puppet et l’agent avec la commande suivante :

/opt/puppetlabs/bin/puppet agent --test

Si tout va bien, tu devrais obtenir le résultat suivant :

Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for puppetclient
Info: Applying configuration version '1599300398'
Notice: Applied catalog in 0.02 seconds

Conclusion

Félicitations ! Tu as réussi à installer et à configurer Puppet master et agent sur le serveur Ubuntu 20.04. Tu peux maintenant ajouter facilement plusieurs agents et les gérer facilement avec Puppet.

Vous aimerez aussi...