Comment configurer Puppet Master et Agent sur CentOS 7

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 7. J’installerai et configurerai un serveur CentOS 7 en tant que « maître » de Puppet, et l’autre en tant qu' »agent ».

Conditions préalables

  • 2 serveurs CentOS 7
    • 10.0.15.10 master.hakase.io 2 Go de mémoire
    • 10.0.15.11 agent.hakase.io
  • Privilèges de racine

Ce que nous allons faire :

  1. Pré-installation de Puppet
  2. Installer et configurer le serveur Puppet
  3. Installer et configurer l’agent Puppet
  4. Vérifier la configuration de l’agent Puppet
  5. Créer le premier manifeste Puppet

Étape 1 – Pré-installation de Puppet

Dans cette étape, nous allons effectuer certaines tâches, notamment l’installation et la configuration sur les deux serveurs Puppet Master et Puppet Agent. Nous allons configurer le fichier de l’hôte, synchroniser le temps à l’aide du serveur NTP, désactiver SELinux et ajouter le référentiel Puppet au système.

– Configurer les hôtes

Connecte-toi au maître et à l’agent puppet en utilisant ton utilisateur root.

ssh [email protected]
ssh [email protected]

Modifie maintenant les hôtes à l’aide de l’éditeurvim.

vim /etc/hosts

Ajoute la configuration suivante à la fin de la ligne.

10.0.15.10      master.hakase.io
10.0.15.11      agent.hakase.io

Sauvegarde et quitte.

Maintenant, teste en utilisant la commande ping.

ping master.hakase.io
ping agent.hakase.io

Et vérifie que tu obtiens l’adresse IP du serveur 10.0.15.10 et 10.0.15.11.

Configurer le fichier hosts

– Configurer le serveur NTP

Il est très important de garder en synchronisation l’heure entre le serveur maître et le serveur agent.

Installe les paquets NTP sur les deux serveurs à l’aide de la commande yum.

yum -y install ntp ntpdate

Une fois l’installation terminée, choisis le pool NTP que tu veux en exécutant la commande ci-dessous.

sudo ntpdate 0.centos.pool.ntp.org

Maintenant, démarre le service NTP et active-le pour qu’il se lance chaque fois au démarrage du système.

sudo systemctl start ntpd
sudo systemctl enable ntpd

L’installation et la configuration de NTP sont terminées.

Configure NTP

– Désactiver SELinux

Modifie la configuration de SELinux à l’aide de vim.

vim /etc/sysconfig/selinux

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

SELINUX=disabled

Sauvegarde et quitte.

– Ajoute le référentiel Puppet

Ajoute maintenant le référentiel Puppet au système à l’aide de la commande rpm ci-dessous.

rpm -Uvh https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm

Ajoute le dépôt de puppet

Quand c’est terminé, redémarre les deux serveurs.

reboot

Nous sommes maintenant prêts pour l’installation et la configuration de Puppet.

Étape 2 – Installation et configuration de Puppetserver

Dans cette étape, nous allons installer le puppetserver sur le serveur master.hakase.io. Installe puppetserver à l’aide de la commande yum ci-dessous.

sudo yum -y install puppetserver

Une fois l’installation terminée, nous devons configurer l’allocation de mémoire pour puppetserver. Nous allons définir l’allocation de mémoire maximale pour puppetserver à 1 Go.

Modifie la configuration de ‘puppetserver’ à l’aide de vim.

vim /etc/sysconfig/puppetserver

Modifie maintenant la ligne comme ci-dessous.

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

Sauvegarde et quitte.

Ensuite, va dans le répertoire de configuration de puppet et modifie le fichier ‘puppet.conf’.

cd /etc/puppetlabs/puppet
vim puppet.conf

Ajoute la configuration suivante.

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

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

Sauvegarde et quitte.

Maintenant, démarre le puppetserver et active-le pour qu’il se lance à chaque fois au démarrage.

systemctl start puppetserver
systemctl enable puppetserver

L’installation et la configuration de Puppetserver ont été effectuées avec succès.

Configure puppetserver

Si tu utilises firewalld sur ton système, ajoute le port de puppetserver à la liste en utilisant la commande firewall-cmd ci-dessous.

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

Configuration du pare du feu

Étape 3 – Installer et configurer l’agent Puppet

Nous allons installer l’agent Puppet sur le serveur ‘agent.hakase.io’.

Installe l’agent Puppet à l’aide de la commande yum ci-dessous.

yum install -y puppet-agent

Une fois l’installation terminée, va dans le répertoire de configuration de puppet et modifie le fichier puppet.conf.

cd /etc/puppetlabs/puppet
vim puppet.conf

Colle la configuration suivante.

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

Sauvegarde et quitte.

Ensuite, nous allons enregistrer l’agent puppet auprès du maître puppet.

Exécute la commande ci-dessous sur le shell de l’agent puppet.

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

L’agent puppet fonctionne maintenant sur le serveur et tente de s’enregistrer auprès du maître des marionnettes.

Retourne maintenant sur le shell du maître des marionnettes et exécute la commande ci-dessous.

/opt/puppetlabs/bin/puppet cert list

Tu obtiendras la demande de signature de certificat (CSR) en attente du serveur de l’agent puppet ‘agent.hakase.io’.

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

/opt/puppetlabs/bin/puppet cert sign agent.hakase.io

Et le résultat devrait être similaire à ce qui suit :

Configurer l'agent puppet

L’agent Puppet fonctionne maintenant sur le système et le certificat de l’agent a été signé par le maître Puppet.

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

Après que le maître des marionnettes a signé le fichier de certificat pour l’agent, exécute la commande ci-dessous sur l’agent des marionnettes pour vérifier la configuration.

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

Tu obtiendras le résultat indiqué ci-dessous.

Vérifier la configuration de l'agent puppet

L’agent Puppet a récupéré la configuration du maître Puppet et l’a appliquée au serveur sans aucune erreur.

Étape 5 – Créer le premier manifeste

L’installation et la configuration du maître et de l’agent Puppet sont terminées. Pour cette étape, nous allons créer un manifeste simple pour les tests.

Nous allons créer le manifeste pour l’installation du serveur Web Apache httpd.

Sur le serveur maître de puppet, va dans le répertoire ‘/etc/puppetlabs/code/’ et crée le nouveau fichier manifeste ‘site.pp’ en utilisant vim.

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

Crée un nouveau fichier manifeste.

vim site.pp

Colle la configuration suivante.

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

Sauvegarde et quitte.

Ouvre maintenant le shell du serveur de l’agent marionnette et exécute la commande ci-dessous.

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

La commande récupérera le nouveau fichier de configuration du manifeste à partir du maître de marionnettes et l’appliquera ensuite au serveur de l’agent.

Le résultat est le suivant.

Créer le manifeste de la marionnette

Ouvre ton navigateur Web et tape l’adresse IP de l’agent puppet.

http://10.0.15.11/

Et tu obtiendras la page HTTP par défaut comme ci-dessous.

Apache test page

Le serveur web httpd a été installé à l’aide du manifeste Puppet.

L’installation et la configuration de Puppet Master et de Puppet Agent sur CentOS 7 ont été effectuées avec succès.

Référence

Vous aimerez aussi...