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 effectuer des tâches administratives telles que l'ajout d'utilisateurs, l'installation de packages, etc. 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. Où le maître Puppet contrôle les informations de configuration des agents Puppet tandis que les agents Puppet communiquent avec le maître Puppet et en retirent les profils de configuration.
Dans ce tutoriel, nous expliquerons comment installer un serveur et un agent Puppet sur un serveur Ubuntu 20.04.
Prérequis
- Deux serveurs exécutant Ubuntu 20.04.
- Un mot de passe root est configuré sur les deux serveurs.
Mise en route
Tout d'abord, vous devrez mettre à jour tous les packages sur les systèmes Puppet master et Puppet client. Vous pouvez les mettre à jour en exécutant la commande suivante :
apt-get update -y
Une fois que tous les packages sont à jour, vous pouvez passer à l'étape suivante.
Configurer la résolution du nom d'hôte
Ensuite, vous devrez configurer le nom d'hôte sur les deux nœuds. Ainsi, chaque nœud peut communiquer entre eux par nom d'hôte. Vous pouvez le faire en éditant le fichier /etc/hosts sur les deux nœuds :
nano /etc/hosts
Ajoutez les lignes suivantes sur les deux nœuds :
puppet-master-ip puppetmaster puppet puppet-client-ip puppetclient
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, vous pouvez passer à l'étape suivante.
Installer le serveur Puppet
Tout d'abord, vous devrez installer le serveur Puppet sur le nœud maître. Par défaut, le package Puppet n'est pas disponible dans le référentiel par défaut d'Ubuntu 20.04. Vous devrez donc installer le référentiel Puppet sur votre serveur.
Tout d'abord, téléchargez la dernière version de Puppet avec la commande suivante :
wget https://apt.puppetlabs.com/puppet6-release-focal.deb
Une fois le package téléchargé, installez-le en exécutant la commande suivante :
dpkg -i puppet6-release-focal.deb
Une fois l'installation terminée, mettez à jour le référentiel et installez 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, vous devrez modifier la taille d'allocation de mémoire du processus Java Puppet. Vous pouvez le faire en éditant le fichier /etc/default/puppetserver :
nano /etc/default/puppetserver
Modifiez la taille de la mémoire à 1 g comme indiqué ci-dessous :
JAVA_ARGS="-Xms1g -Xmx1g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, démarrez le service Puppet et activez-le au redémarrage du système avec la commande suivante :
systemctl start puppetserver
systemctl enable puppetserver
Ensuite, vous pouvez vérifier l'état du service Puppet avec la commande suivante :
systemctl status puppetserver
Vous devriez 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 vous avez terminé, vous pouvez passer à l'étape suivante.
Installer et configurer l'agent Puppet
À ce stade, le serveur Puppet est installé et configuré. Maintenant, vous devrez installer l'agent Puppet sur le nœud client.
Tout d'abord, téléchargez et installez 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, mettez à jour le référentiel et installez 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, vous devrez modifier le fichier de configuration Puppet et définir les informations du maître Puppet :
nano /etc/puppetlabs/puppet/puppet.conf
Ajoutez les lignes suivantes :
[main] certname = puppetclient server = puppetmaster
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, démarrez le service de l'agent Puppet et activez-le pour qu'il démarre au démarrage avec la commande suivante :
systemctl start puppet
systemctl enable puppet
Ensuite, vérifiez l'état de la marionnette avec la commande suivante :
systemctl status puppet
Vous devriez obtenir le résultat suivant :
? 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é. Vous pouvez maintenant passer à l'étape suivante.
Signer le certificat d'agent Puppet
Puppet utilise une architecture client-serveur, vous devrez donc approuver une demande de certificat pour chaque nœud d'agent avant de pouvoir le configurer.
Sur le nœud maître Puppet, exécutez la commande suivante pour répertorier tous les certificats :
/opt/puppetlabs/bin/puppetserver ca list
Vous devriez voir le résultat suivant :
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, signez tous les certificats avec la commande suivante :
/opt/puppetlabs/bin/puppetserver ca sign --all
Vous devriez obtenir le résultat suivant :
Successfully signed certificate request for puppetclient Successfully signed certificate request for puppetmaster
Désormais, le maître des marionnettes peut communiquer et contrôler le nœud de l'agent.
Sur le nœud de l'agent Puppet, testez la communication entre le maître Puppet et l'agent avec la commande suivante :
/opt/puppetlabs/bin/puppet agent --test
Si tout va bien, vous devriez 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
Toutes nos félicitations! vous avez installé et configuré avec succès le maître et l'agent Puppet sur le serveur Ubuntu 20.04. Vous pouvez désormais facilement ajouter plusieurs agents et les gérer facilement avec Puppet.