GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer Puppet sur CentOS 8 / RHEL 8

Puppet est un outil de gestion de configuration open source qui nous aide à automatiser l'infrastructure informatique, y compris le provisionnement, la gestion de la configuration et l'application de correctifs à des centaines de systèmes clients à partir d'un emplacement central.

Puppet est disponible pour les systèmes d'exploitation Linux, Mac, BSD, Solaris et Windows. Il est écrit en langage "Ruby" et publié sous licence Apache,

Ce guide vous aide à installer Puppet sur CentOS 8 / RHEL 8.

Architecture

Pupper est configuré dans une architecture agent-maître. Dans cette architecture, les nœuds gérés exécutent le logiciel de l'agent de marionnettes, en tant que service d'arrière-plan. D'autre part, un ou plusieurs serveurs exécutent l'application maître, c'est-à-dire. Serveur de marionnettes.

L'agent de marionnettes envoie périodiquement des faits au maître de marionnettes et demande un catalogue. Le maître compile et renvoie le catalogue de ce nœud particulier, en utilisant les sources d'informations auxquelles il a accès.

Environnement

Ici, nous allons configurer une marionnette en architecture serveur/agent.

Maître des marionnettes

Nom d'hôte : marionnetteserver.itzgeek.local

Adresse IP : 192.168.0.10

Système d'exploitation : CentOS 8

Client marionnette

Nom d'hôte : client.itzgeek.local

Adresse IP : 192.168.0.20

Système d'exploitation : CentOS 8

Prérequis

Installer NTP

La synchronisation des nœuds maître et client doit être synchronisée avec précision avec le serveur NTP, car le serveur Puppet agira en tant qu'autorité de certification.

Si vous devez configurer le serveur NTP, alors :

LIRE : Comment configurer le serveur NTP à l'aide de Chrony

Si vous devez configurer le client NTP, alors :

LIRE : Comment configurer le client NTP à l'aide de Chrony

Si nécessaire, modifiez également le fuseau horaire du système.

LIRE :Comment changer le fuseau horaire dans CentOS 8 / RHEL 8

DNS

L'agent Puppet utilise le nom d'hôte pour communiquer avec le serveur Puppet. Assurez-vous donc que les nœuds d'agent peuvent résoudre le nom d'hôte du serveur Puppet à l'aide du fichier /etc/hosts ou du serveur DNS.

Installer et configurer le serveur Puppet

Puppet Server est le logiciel serveur qui s'exécute sur le nœud maître. Puppet Server contrôle les configurations des nœuds gérés (puppet-agent).

Ajouter un référentiel

Pour installer le serveur Puppet, nous aurions besoin d'ajouter le référentiel de marionnettes en installant le package de configuration du référentiel.

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

Installer Puppet

Installez le serveur Puppet à l'aide de la commande ci-dessous.

yum install -y puppetserver
 

Allocation de mémoire

Par défaut, Puppet Server est configuré pour utiliser 2 Go de mémoire. Vous pouvez modifier l'allocation de mémoire en fonction du nombre de nœuds qui y sont connectés.

Pour cette démo, j'allouerai 512 Mo de mémoire.

Pour modifier la valeur de l'allocation de mémoire, modifiez le fichier ci-dessous.

vi /etc/sysconfig/puppetserver
 

Modifiez la valeur.

De :

JAVA_ARGS="-Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"

À :

Pour 512 Mo, utilisez les paramètres ci-dessous.

JAVA_ARGS="-Xms512m -Xmx512m -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"

Configurer le serveur Puppet

Le fichier de configuration de Puppet se compose de deux sections nommées [master] et [main] pour le serveur et l'agent Pupper respectivement.

vi /etc/puppetlabs/puppet/puppet.conf
 

Modifiez le fichier en fonction de votre environnement. Les agents Pupper peuvent utiliser n'importe lequel des noms d'hôtes mentionnés dans les dns_alt_names pour se connecter au serveur Pupper.

# Configuration du serveur Pupper[master]dns_alt_names =puppetserver,puppetserver.itzgeek.local#Configuration de l'agent Puppet[main]certname =puppetserver.itzgeek.localserver =puppetserver.itzgeek.localruninterval =30m

Démarrer le serveur Puppet

Générez l'AC de signature racine et intermédiaire pour Puppet Server.

puppetserver ca setup
 
Sortie :la génération a réussi. Trouvez vos fichiers dans /etc/puppetlabs/puppet/ssl/ca
Si vous obtenez puppetserver:command not found, exécutez la source /etc/profile.d/puppet-agent.sh dans le terminal ou déconnectez-vous de la session en cours et reconnectez-vous.

Démarrez et activez le serveur Puppet.

systemctl start puppetserver

systemctl enable puppetserver
 

Pare-feu

Le serveur Puppet écoute sur le port 8140. Configurez donc le pare-feu pour permettre aux agents de se connecter au maître.

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

firewall-cmd --reload
 

Installer et configurer l'agent Puppet

Ajouter un référentiel

Pour installer l'agent Puppet, nous aurions besoin d'ajouter le référentiel Puppet sur tous les nœuds.

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

Installer l'agent

Installez l'agent marionnette sur votre client à l'aide de la commande ci-dessous.

dnf install -y puppet-agent
 

Modifiez le fichier de configuration de la marionnette et définissez les informations du serveur Puppet.

Définissez la valeur du serveur en fonction du nom d'hôte de votre serveur Puppet. Dans mon cas, le serveur est puppetserver.itzgeek.local et certname est mon nom d'hôte client (client.itzgeek.local).

vi /etc/puppetlabs/puppet/puppet.conf
 

Réglez comme ci-dessous.

[main]server =puppetserver.itzgeek.localcertname =client.itzgeek.localruninterval =30m

Vous pouvez modifier la valeur de runinterval en fonction des besoins. Ce paramètre contrôle la durée d'attente de l'agent entre les deux demandes de catalogue. Vous pouvez définir la valeur en secondes (10 ou 10s), minutes (10m) et heures (1h).

Démarrez l'agent marionnette sur le nœud et faites-le démarrer automatiquement au démarrage du système.

puppet resource service puppet ensure=running enable=true
 
Output:Notice :/Service[puppet]/ensure : assurez-vous que 'stopped' est remplacé par 'running'service { 'puppet' : assure => 'running', enable => 'true', provider => 'systemd' ,}
Si vous obtenez puppet:command not found, exécutez la source /etc/profile.d/puppet-agent.sh dans le terminal ou déconnectez-vous de la session en cours et reconnectez-vous.

Signer le certificat de nœud d'agent sur le serveur maître

Nous devons approuver une demande de certificat provenant de chaque nœud. Les nœuds d'agent demanderont des certificats pour la première fois s'ils tentent de s'exécuter.

Exécutez la commande ci-dessous sur le nœud de l'agent pour établir une connexion initiale. Vous pouvez ignorer les avertissements/erreurs.

puppet agent -t
 

Connectez-vous au serveur Pupper et exécutez la commande ci-dessous pour afficher les demandes en attente.

puppetserver ca list
 
Sortie :Certificats demandés :client.itzgeek.local (SHA256) 06:D8:8E:AE:CA:0B:B1:E7:90:B5:B9:1B:75:3C:95:69:D8 :EF:27:0A:5D:CC:45:BB:15:34:64:D2:6B:2C:CA:98

Exécutez la commande puppet cert sign pour signer une demande.

puppetserver ca signe --certname client.itzgeek.local
Sortie :demande de certificat signée avec succès pour client.itzgeek.local

Le serveur Puppet peut maintenant communiquer avec la machine cliente et contrôler le nœud.

Si vous avez plusieurs demandes de signature provenant de nœuds, vous pouvez signer toutes les demandes en une seule commande.

puppetserver ca sign --all
 

Parfois, vous devrez peut-être révoquer le certificat d'un nœud particulier pour le relire.

Remplacez par le nom d'hôte de votre client.

puppetserver peut révoquer --certname AGENT_NAME

Vous pouvez lister toutes les requêtes signées et non signées avec la commande ci-dessous.

puppetserver ca list --all
 
Sortie :Certificats signés :puppetserver.itzgeek.local (SHA256) E6:2C:6C:1E:9B:C6:AA:D9:84:09:F3:67:45:1B:36:C6:1F :FB:46:5F:92:64:37:19:E3:74:0C:0D:29:D5:C5:F6 noms alternatifs :["DNS:puppetserver.itzgeek.local", "DNS:puppetserver", " DNS:puppetserver.itzgeek.local"] extensions d'autorisation :[pp_cli_auth :true] client.itzgeek.local (SHA256) EF:D8:1A:F2:E9:56:A3:1F:DA:A9:8D:9B:71 :02:D8:52:F1:44:98:92:A7:5F:DE:FC:5F:55:37:97:EC:9C:9A:96

Vérifier le client Puppet

Une fois que le serveur Puppet a signé votre certificat client, exécutez la commande suivante sur la machine cliente pour le tester.

puppet agent --test
 
Sortie : Info :Utilisation de l'environnement configuré 'production'Info :Récupération de l'environnement de configuration 'production' 

Conclusion

C'est Al. J'espère que vous avez appris à installer Puppet sur CentOS 8 / RHEL 8. Pour en savoir plus, apprenez à créer un fichier manifeste simple pour créer un fichier et un répertoire sur le nœud client. Veuillez partager vos commentaires dans la section des commentaires.


Cent OS
  1. Comment installer le serveur de messagerie postfix sur RHEL 8 / CentOS 8

  2. Comment installer le serveur DNS sur RHEL 8 / CentOS 8 Linux

  3. Comment installer Puppet 6.x sur CentOS 7 / RHEL 7

  4. Comment installer Puppet sur RHEL 8/CentOS 8

  5. CentOS / RHEL 7 :Comment installer l'interface graphique

Comment installer Zabbix Server 4.x sur CentOS 6 / RHEL 6

Comment installer Jetty Web Server sur CentOS 7 / RHEL 7

Comment installer Zabbix Server 5.0 / 4.0 sur CentOS 7 / RHEL 7

Comment installer le serveur VNC sur CentOS 8 / RHEL 8

Comment installer Zabbix Server 5.0 / 4.0 sur CentOS 8 / RHEL 8

Comment installer Puppet Server sur CentOS 7