Comment configurer Puppet Master et Agent sur CentOS 8

Puppet est un outil de gestion de la configuration et un cadre d’automatisation des serveurs open-source. Puppet peut fonctionner sur des systèmes d’exploitation de type Unix, ainsi que sur les systèmes Microsoft Windows. Il te permet de gérer et d’effectuer des tâches administratives et la configuration de centaines de systèmes à partir d’un seul serveur maître.

Dans ce tutoriel, je vais t’expliquer comment installer Puppet sur CentOS 8. J’installerai et configurerai un serveur CentOS 8 en tant que « maître » de Puppet, et l’autre en tant qu' »agent ».

Conditions préalables

  • 2 serveurs CentOS 8 ou plus
  • Privilèges de racine

Ce que nous allons faire :

  • Pré-installation de Puppet
  • Installer et configurer le serveur Puppet
  • Installer et configurer l’agent Puppet
  • Vérifier la configuration de l’agent Puppet
  • Créer le premier manifeste Puppet

Étape 1 – Pré-installation de Puppet

Dans cette première étape, nous allons préparer les serveurs maître et agent pour l’installation de Puppet. Nous allons configurer les hôtes et le FQDN du serveur, configurer le serveur NTP et ajouter le référentiel Puppet pour le serveur CentOS 8.

Configurer les noms d’hôtes

Tout d’abord, nous allons configurer les hôtes et le FQDN des deux serveurs. Le maître de marionnettes aura un nom d’hôte ‘master’ avec le FQDN ‘master.hakase-labs.io’, et l’agent aura un nom d’hôte ‘agent01’ avec le FQDN ‘agent01.hakase-labs.io’.

Configure le nom d’hôte à l’aide de la commande ‘hostnamectl’ ci-dessous.

hostnamectl set-hostname hostname

Ensuite, modifie le fichier ‘/etc/hosts’ pour configurer le serveur FQDN.

vim /etc/hosts

Change l’adresse IP et le nom de domaine par les tiens et colle-les dans le fichier.

10.5.5.21   master.hakase-labs.io   master
10.5.5.22   agent01.hakase-labs.io  agent01

Sauvegarde et ferme.

Maintenant, redémarre le service hostnamed pour appliquer un nouveau nom d’hôte et un nouveau FQDN.

systemctl restart systemd-hostnamed

Et après cela, vérifie le nom d’hôte et le FQDN à l’aide de la commande suivante.

hostname
hostname -f

Et tu verras qu’un nouveau nom d’hôte et un nouveau FQDN ont été configurés et appliqués au système.

Définis le nom d'hôte du serveur

Configurer le serveur NTP

Pour le serveur NTP, nous allons utiliser « chrony » pour nos serveurs.

Installe chrony à l’aide de la commande dnf ci-dessous.

dnf install chrony

Ensuite, modifie la configuration de chrony ‘/etc/chrony.conf’ en utilisant l’éditeur vim.

vim /etc/chrony.conf

Change maintenant le serveur de pool avec le pool le plus proche de ton pays. Tu peux vérifier les pools NTP disponibles en utilisant‘https://www.pool.ntp.org/zone/COUNTRYID‘.

Copie tous les serveurs NTP disponibles dans ton pays et colle-les dans le fichier ‘chrony.conf’ comme ci-dessous.

server 0.id.pool.ntp.org iburst
server 1.id.pool.ntp.org iburst
server 2.id.pool.ntp.org iburst
server 3.id.pool.ntp.org iburst

Sauvegarde et ferme.

Maintenant, démarre le service chronyd et ajoute-le au démarrage de l’ordinateur.

systemctl start chronyd
systemctl enable chronyd

La configuration du serveur NTP est terminée.

Configurer la date et l'heure

Ajouter le référentiel Puppet pour CentOS 8

Pour le serveur CentOS 8 à référentiel Puppet, tu peux l’installer manuellement à l’aide de la commande rpm comme ci-dessous.

sudo rpm -Uvh https://yum.puppet.com/puppet6-release-el-8.noarch.rpm

Après cela, vérifie tous les référentiels disponibles sur le système à l’aide de la commande dnf ci-dessous.

dnf repolist

Et tu obtiendras que le référentiel puppet a été ajouté au système CentOS 8.

Ajoute le dépôt de puppet

Désactiver SELinux

Pour désactiver SELinux, tu peux modifier la configuration ‘/etc/sysconfig/selinux’ en utilisant l’éditeur vim.

vim /etc/sysconfig/selinux

Change ensuite la configuration de la valeur ‘SELINUX’ en ‘désactivé’.

SELINUX=disabled

Enregistre et ferme, puis redémarre le serveur.

sudo reboot

Une fois que tu t’es reconnecté, vérifie l’état de SELinux à l’aide de la commande suivante.

sestatus

Tu obtiendras le statut SELinux désactivé.

Étape 2 – Installer et configurer Puppetserver

Dans cette étape, nous allons installer et configurer le puppetserver sur le nœud maître.

Installe le puppetserver à l’aide de la commande dnf ci-dessous.

sudo dnf install puppetserver

Ensuite, nous devons modifier les ‘paramètres init’ de puppetserver et changer l’allocation de mémoire en fonction de la RAM dont nous disposons.

Modifie les paramètres d’initialisation de puppetserver qui se trouvent dans ‘/etc/sysconfig/puppetserver’ à l’aide de l’éditeur vim.

vim /etc/sysconfig/puppetserver

Change maintenant la configuration ‘JAVA_ARGS’ pour l’allocation de mémoire en fonction de ta RAM.

JAVA_ARGS="-Xms1g -Xmx1g ...."

Sauvegarde et ferme.

Ensuite, va dans le répertoire ‘/etc/puppetlabs’ et modifie le fichier de configuration des marionnettes ‘puppet.conf’.

cd /etc/puppetlabs/
vim puppet/puppet.conf

Sous la configuration maître, définis les noms alternatifs DNS avec le FQDN du serveur maître.

[master]
....
dns_alt_names=master.hakase-labs.io,puppet
....

Ensuite, définis la configuration du serveur principal de puppet comme ci-dessous.

[main]
certname = master.hakase-labs.io
server = master.hakase-labs.io
environment = production
runinterval = 1h

Sauvegarde et ferme.

Ajoute maintenant le service puppetserver à l’heure de démarrage et démarre le service.

systemctl enable puppetserver
systemctl start puppetserver

Le puppetserver est en place et fonctionne sur le serveur CentOS 8 avec le port TCP par défaut ‘8140’.

Ajoute le port ‘8140’ du puppetserver au firewalld à l’aide de la commande suivante.

firewall-cmd --add-port=8140/tcp --permanent
firewall-cmd --reload

Et voilà, l’installation et la configuration de Puppet Master ont été effectuées avec succès.

Étape 3 – Installer et configurer l’agent Puppet

Après avoir installé le serveur maître Puppet ‘master.hakase-labs.io’, nous allons installer un agent Puppet sur le serveur ‘agent01’.

Connecte-toi au serveur ‘agent01’ et installe le paquetage puppet-agent à l’aide de la commande dnf ci-dessous.

sudo dnf install puppet-agent

Ensuite, va dans le répertoire ‘/etc/puppetlabs’ et modifie le fichier de configuration ‘puppet.conf’ à l’aide de l’éditeur vim.

cd /etc/puppetlabs/
vim puppet/puppet.conf

Change les configurations ‘certname’ et ‘server’ avec les tiennes et colle-les dans la configuration.

[main]
certname = agent01.hakase-labs.io
server = master.hakase-labs.io
environment = production
runinterval = 1h

Sauvegarde et ferme.

Ensuite, démarre le service Puppet et enregistre l’agent Puppet sur le serveur maître à l’aide de la commande suivante.

/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true

Et tu obtiendras le résultat ci-dessous.

Démarre le service Puppet

L’agent Puppet est maintenant opérationnel, il tente de s’enregistrer auprès du serveur maître Puppet.

Retourne maintenant sur le serveur maître Puppet et vérifie les demandes de certificat en attente.

/opt/puppetlabs/bin/puppetserver ca list

Tu trouveras le certificat ‘agent01.hakase-labs.io’ dans la liste.

Signe maintenant le certificat ‘agent01’ à l’aide de la commande ci-dessous.

/opt/puppetlabs/bin/puppetserver ca sign --certname agent01.hakase-labs.io

Et l’agent Puppet est maintenant enregistré sur le serveur maître.

Enregistrer l'agent de marionnettes

Étape 4 – Vérifier la configuration de l’agent Puppet

Vérifie maintenant la configuration de l’agent Puppet et teste la connexion entre l’agent Puppet et le maître à l’aide de la commande suivante.

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

Tu obtiendras le résultat ci-dessous.

Teste l'agent puppet

En conséquence, l’agent Puppet a extrait la configuration du maître Puppet et l’a appliquée au serveur sans aucune erreur.

Étape 5 – Créer le premier manifeste

À ce stade, l’installation et la configuration de Puppet pour le maître et l’agent sont terminées.

Et pour cette étape, nous allons tester notre installation en créant le premier manifeste Puppet pour installer le paquet httpd.

Va dans le répertoire ‘/etc/puppetlabs/code/environnements/production/manifests’ et crée le premier fichier de manifeste Puppet ‘httpd.pp’.

cd /etc/puppetlabs/code/
cd environments/production/manifests

vim httpd.pp

Colle la configuration suivante.

node 'agent01.hakase-labs.io' {
    package { 'httpd':
        ensure  => "installed",
    }
    service { 'httpd':
        ensure => running,
    enable => true
    }
}

Sauvegarde et ferme.

Créer un manifeste

Maintenant, va dans le nœud de l’agent Puppet ‘agento01’ et exécute la commande suivante.

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

Et tu verras le résultat comme ci-dessous.

Teste l'agent puppet

L’agent Puppet a tiré une nouvelle configuration du maître Puppet pour installer le paquet httpd et démarrer le service httpd.

Sur le nœud ‘agent01′, vérifie l’état du service httpd et vérifie le port HTTP ’80’.

systemctl status httpd
netstat -plntu

Tu obtiendras que le service httpd est en place et fonctionne sur le serveur ‘agent01′ avec le port HTTP par défaut ’80’. Le paquet httpd a été installé via le manifeste Puppet que nous avons créé en haut.

Vérifie l'état de httpd

Et par conséquent, l’installation et la configuration du maître et de l’agent Puppet sur le serveur CentOS 8 ont été effectuées avec succès.

Référence

Vous aimerez aussi...