Puppet est un outil de gestion de configuration open source et un framework d'automatisation de serveur. Puppet peut fonctionner sur des systèmes d'exploitation de type Unix, ainsi que sur les systèmes Microsoft Windows. Il vous permet de gérer et d'effectuer des tâches administratives et la configuration de centaines de systèmes à partir d'un serveur maître.
Dans ce didacticiel, je vais vous expliquer comment installer Puppet sur CentOS 7. J'installerai et configurerai un serveur CentOS 7 en tant que "maître" de marionnette et l'autre en tant qu'"agent".
Prérequis
- 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 root
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 de marionnettes
Étape 1 - Pré-installation de Puppet
Dans cette étape, nous effectuerons certaines tâches, notamment l'installation et la configuration sur les serveurs marionnettes maître et agent marionnettes. Nous allons configurer le fichier de l'hôte, synchroniser l'heure à l'aide du serveur NTP, désactiver SELinux et ajouter le référentiel de marionnettes au système.
- Configurer les hôtes
Connectez-vous au puppet master et à l'agent en utilisant votre utilisateur root.
ssh [email protected]
ssh [email protected]
Modifiez maintenant les hôtes à l'aide de l'éditeur vim.
vim /etc/hosts
Ajoutez la configuration suivante à la fin de la ligne.
10.0.15.10 master.hakase.io
10.0.15.11 agent.hakase.io
Enregistrez et quittez.
Testez maintenant en utilisant la commande ping.
ping master.hakase.io
ping agent.hakase.io
Et assurez-vous d'obtenir l'adresse IP du serveur 10.0.15.10 et 10.0.15.11.
- Configurer le serveur NTP
Il est très important de synchroniser l'heure entre le serveur maître et l'agent.
Installez les packages NTP sur les deux serveurs à l'aide de la commande yum.
yum -y install ntp ntpdate
Une fois l'installation terminée, choisissez le pool NTP comme vous le souhaitez en exécutant la commande ci-dessous.
sudo ntpdate 0.centos.pool.ntp.org
Démarrez maintenant le service NTP et activez-le pour qu'il se lance à chaque démarrage du système.
sudo systemctl start ntpd
sudo systemctl enable ntpd
L'installation et la configuration de NTP sont terminées.
- Désactiver SELinux
Modifiez la configuration SELinux à l'aide de vim.
vim /etc/sysconfig/selinux
Changez la valeur SELINUX en "désactivé".
SELINUX=disabled
Enregistrez et quittez.
- Ajouter un référentiel Puppet
Ajoutez maintenant le référentiel de marionnettes au système à l'aide de la commande rpm ci-dessous.
rpm -Uvh https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm
Une fois terminé, redémarrez les deux serveurs.
reboot
Nous sommes maintenant prêts pour l'installation et la configuration de la marionnette.
Étape 2 - Installer et configurer Puppetserver
Dans cette étape, nous allons installer le puppetserver sur le serveur master.hakase.io. Installez 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.
Modifiez la configuration de 'puppetserver' à l'aide de vim.
vim /etc/sysconfig/puppetserver
Changez maintenant la ligne comme ci-dessous.
JAVA_ARGS="-Xms1g -Xmx1g ...."
Enregistrez et quittez.
Ensuite, allez dans le répertoire de configuration de la marionnette et modifiez le fichier 'puppet.conf'.
cd /etc/puppetlabs/puppet
vim puppet.conf
Ajoutez la configuration suivante.
[master]
dns_alt_names=master.hakase.io,puppet
[main]
certname = master.hakase.io
server = master.hakase.io
environment = production
runinterval = 1h
Enregistrez et quittez.
Démarrez maintenant le puppetserver et activez-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.
Si vous utilisez firewalld sur votre système, ajoutez le port puppetserver à la liste à l'aide de la commande firewall-cmd ci-dessous.
firewall-cmd --add-port=8140/tcp --permanent
firewall-cmd --reload
Étape 3 - Installer et configurer l'agent Puppet
Nous allons installer l'agent marionnette sur le serveur 'agent.hakase.io'.
Installez l'agent marionnette à l'aide de la commande yum ci-dessous.
yum install -y puppet-agent
Une fois l'installation terminée, accédez au répertoire de configuration de la marionnette et modifiez le fichier puppet.conf.
cd /etc/puppetlabs/puppet
vim puppet.conf
Collez la configuration suivante.
[main]
certname = agent.hakase.io
server = master.hakase.io
environment = production
runinterval = 1h
Enregistrez et quittez.
Ensuite, nous enregistrerons l'agent de marionnettes auprès du marionnettiste.
Exécutez la commande ci-dessous sur le shell de l'agent marionnette.
/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
L'agent de marionnettes est maintenant en cours d'exécution sur le serveur et tente de s'enregistrer auprès du maître de marionnettes.
Revenons maintenant au shell maître de la marionnette et exécutez la commande ci-dessous.
/opt/puppetlabs/bin/puppet cert list
Et vous obtiendrez la demande de signature de certificat (CSR) en attente du serveur d'agent marionnette 'agent.hakase.io'.
Signez le certificat à l'aide de la commande ci-dessous.
/opt/puppetlabs/bin/puppet cert sign agent.hakase.io
Et le résultat devrait ressembler à ce qui suit :
L'agent marionnette est maintenant en cours d'exécution sur le système et le certificat de l'agent a été signé par le maître marionnettiste.
Étape 4 - Vérifier la configuration de l'agent Puppet
Une fois que le maître de marionnettes a signé le fichier de certificat pour l'agent, exécutez la commande ci-dessous sur l'agent de marionnettes pour vérifier la configuration.
/opt/puppetlabs/bin/puppet agent --test
Et vous obtiendrez le résultat comme indiqué ci-dessous.
L'agent Puppet a extrait la configuration du maître de marionnettes et l'a appliquée au serveur sans aucune erreur.
Étape 5 - Créer le premier manifeste
L'installation et la configuration du puppet master et de l'agent sont terminées. Et pour cette étape, nous allons créer un manifeste simple à tester.
Nous allons créer le manifeste pour l'installation du serveur Web Apache httpd.
Sur le serveur maître de marionnettes, accédez au répertoire '/etc/puppetlabs/code/' et créez le nouveau fichier manifeste 'site.pp' à l'aide de vim.
cd /etc/puppetlabs/code/
cd environments/production/manifests
Créer un nouveau fichier manifeste.
vim site.pp
Collez la configuration suivante.
node 'agent.hakase.io' {
package { 'httpd':
ensure => "installed",
}
service { 'httpd':
ensure => running,
enable => true
}
}
Enregistrez et quittez.
Ouvrez maintenant le shell du serveur de l'agent de marionnettes et exécutez 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, puis l'appliquera au serveur de l'agent.
Voici le résultat.
Ouvrez votre navigateur Web et saisissez l'adresse IP de l'agent marionnette.
http://10.0.15.11/
Et vous obtiendrez la page HTTP par défaut comme ci-dessous.
Le serveur Web httpd a été installé à l'aide du manifeste de la marionnette.
L'installation et la configuration de Puppet Master et Puppet Agent sur CentOS 7 ont été effectuées avec succès.