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

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

Puppet est un outil de gestion de configuration open source qui vous aide à gérer les configurations de centaines de systèmes clients à partir d'un emplacement central.

Puppet facilite la vie de l'administrateur en réduisant le temps consacré aux tâches répétitives et lui permet de se concentrer sur d'autres travaux, garantit également que la configuration déployée est cohérente sur l'ensemble de l'infrastructure.

Puppet est disponible pour les systèmes informatiques basés sur Linux, Mac, BSD, Solaris et Windows, publié sous licence Apache, écrit en langage "Ruby".

Ce guide vous aide à installer Puppet 6.x sur CentOS 7 / RHEL 7.

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.

L'architecture autonome

Dans cette architecture, chaque nœud géré a sa copie des informations de configuration et compile son catalogue. Il exécute l'application d'application de marionnettes en tant que tâche cron.

Environnement

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

Maître des marionnettes

Nom d'hôte : serveur.itzgeek.local
Adresse IP : 192.168.1.10
Système d'exploitation : CentOS 7.6

Client marionnette

Nom d'hôte : client.itzgeek.local
Adresse IP : 192.168.1.20
Système d'exploitation : CentOS 7.6

Prérequis

Installer NTP

Les horaires des nœuds maître et client doivent être synchronisés avec précision avec les serveurs de temps en amont, car le maître du serveur maître Puppet agira en tant qu'autorité de certification.

(Si l'heure est incorrecte, il peut émettre par erreur des certificats d'agent à partir d'une date passée ou future lointaine, que d'autres nœuds traiteront comme expirés.)

Installez le package NTP et effectuez la synchronisation de l'heure avec les serveurs NTP en amont.

yum -y install ntpdatentpdate 0.centos.pool.ntp.org
Assurez-vous que tous les nœuds sont dans le même fuseau horaire en utilisant date commande. S'il y a des écarts, modifiez-le en conséquence.

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

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 de Puppet Server à l'aide de /etc/hosts fichier ou serveur DNS.

Configurer le référentiel de marionnettes

Pour installer le serveur/les agents Puppet, nous aurions besoin d'ajouter un référentiel de marionnettes sur tous les nœuds.

Configurez le référentiel de Puppet sur les nœuds maître et agent.
rpm -Uvh https://yum.puppet.com/puppet6-release-el-7.noarch.rpm

Installer le serveur de marionnettes

Puppet Server est le logiciel serveur qui s'exécute sur le nœud maître de marionnettes. Puppetmaster envoie les configurations aux nœuds gérés (puppet-agent).

Installez le serveur Puppet en utilisant la commande ci-dessous.

yum install -y puppetserver

Le serveur de marionnettes est maintenant installé, ne démarrez pas encore le service de serveur de marionnettes.

Configurer le serveur de marionnettes

Allocation de mémoire

Par défaut, la JVM Puppet Server est configurée pour utiliser 2 Go de mémoire. Vous pouvez le modifier en fonction de la quantité de mémoire disponible sur votre nœud maître ; assurez-vous qu'il est suffisant pour gérer tous les nœuds qui y sont connectés.

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"

Serveur Web intégré

Puppet Server utilise un serveur Web basé sur Jetty intégré dans le processus JVM du service. Vous n'avez pas besoin de configurer ou d'activer le serveur Web ; cela fonctionne hors de la boîte. Il fonctionne bien sous des charges de niveau de production.

Les paramètres du serveur Web intégré peuvent être modifiés dans webserver.conf. Vous devrez peut-être modifier ce fichier si vous utilisez une autorité de certification externe ou si vous exécutez Puppet Server sur un port non standard.

Configuration des marionnettes

Configurations simples

Puppet Server ne nécessite aucune configuration. Vous pouvez simplement démarrer le service de serveur Puppet. Il utilisera les paramètres par défaut.

Le nom d'hôte par défaut de Puppet Server (dns_alt_names) est puppet, vous devez donc utiliser server =puppet dans le fichier de configuration puppet-agent.

Si vous souhaitez modifier le nom d'hôte du maître de marionnettes, suivez la procédure ci-dessous.

Configurations avancées (facultatif)

Ici, je vais modifier les paramètres de Puppet Master pour nos besoins.

vi /etc/puppetlabs/puppet/puppet.conf

Placez les lignes ci-dessous. Modifiez-le en fonction de votre environnement.

[master]dns_alt_names =server.itzgeek.local,server[main]certname =server.itzgeek.localserver =server.itzgeek.localenvironment =productionruninterval =1h

Démarrer le serveur de marionnettes

Générez une autorité de certification de signature racine et intermédiaire pour Puppet Server.

configuration de puppetserver ca

Sortie :

Génération réussie. 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 puppetserversystemctl enable puppetserver

Pare-feu

Le Puppet Master écoute sur le port 8140, configurez donc le pare-feu de manière à ce que les nœuds gérés puissent se connecter au maître.

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

Installer l'agent de marionnettes

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

yum install -y puppet-agent

L'agent marionnette utilise également certains des paramètres par défaut pour se connecter au nœud maître. Cependant, nous devons modifier le fichier de configuration de la marionnette et définir les informations du maître de la marionnette.

Définir le serveur valeur selon votre nom de nœud maître. Dans mon cas, le serveur est server.itzgeek.local , et nomcertificat est mon nom d'hôte client (client.itzgeek.local ).
vi /etc/puppetlabs/puppet/puppet.conf

Réglez comme ci-dessous.

[main]certname =client.itzgeek.localserver =server.itzgeek.localenvironment =productionruninterval =1h

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

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

marionnette du service de ressources de marionnettesassure=running enable=true

Sortie :

Remarque : /Service[puppet]/ensure : assurez-vous que 'stopped' est remplacé par 'running'service { 'puppet' : assure => 'running', enable => 'true',}
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

Dans un déploiement agent/maître, un administrateur doit approuver une demande de certificat provenant de chaque nœud afin qu'il puisse récupérer les configurations. Les nœuds d'agent demanderont des certificats pour la première fois s'ils tentent de s'exécuter.

Connectez-vous au serveur maître de marionnettes et exécutez la commande ci-dessous pour afficher les demandes en attente.

liste ca puppetserver

Sortie :

client.itzgeek.local (SHA256) A6:0E:93:51:FF:53:C8:FA:63:70:72:53:B6:1E:1B:A8:49:79:37:7E :57:00:02:AE:32:44:22:BE:97:F5:08:09

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 marionnettiste 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 signe --all

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

Remplacez le avec votre nom d'hôte 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.

liste ca de puppetserver --all

Sortie :

server.itzgeek.local (SHA256) 6E:90:94:6F:31:4F:8C:2A:28:90:D5:C0:6D:71:18:65:5E:86:DE:1C :16:9C:7C:30:8F:BF:DA:87:2D:F7:2C:26 noms alternatifs :["DNS:server.itzgeek.local", "DNS:server", "DNS:server.itzgeek .local"]client.itzgeek.local (SHA256) A6:08:36:5C:DB:73:0D:16:BA:5B:0D:72:76:FD:C7:31:DD:87:6F :EC:D4:4F:7A:87:E9:4F:73:70:D0:09:6E:61

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.

agent marionnette --test

Sortie :

Info :Utilisation de l'environnement configuré 'production'Info :Récupération de pluginfactsInfo :Récupération de pluginInfo :Récupération de localesInfo :Mise en cache du catalogue pour client.itzgeek.localInfo :Application de la version de configuration '1558878523'Notice :Catalogue appliqué en 0,03 seconde

Création de notre premier manifeste

Manifest est un fichier de données qui contient la configuration du client, écrit dans le langage déclaratif de Puppet ou un Ruby DSL. Cette section couvre certains manifestes de base pour créer un répertoire ainsi qu'un fichier sur le nœud géré.

Le fichier manifeste principal de la marionnette se trouve dans /etc/puppetlabs/code/environments/production/manifests/site.pp.

vi /etc/puppetlabs/code/environments/production/manifests/site.pp

Ajoutez maintenant les lignes suivantes au manifeste pour créer un répertoire sur le nœud géré.

Si la variable node n'est pas définie, ce manifeste s'appliquera à tous les nœuds connectés au puppet master.
nœud 'client.itzgeek.local ' { # S'applique uniquement au nœud mentionné ; si rien n'est mentionné, s'applique à tous. Mode de nom de groupe => '0755', # autorisations de répertoire}}

Maintenant, exécutez la commande suivante sur le nœud client pour récupérer les configurations.

agent marionnette --test

Sortie :

Info :Utilisation de l'environnement configuré 'production'Info :Récupération de pluginfactsInfo :Récupération de pluginInfo :Catalogue de mise en cache pour client.itzgeek.localInfo :Application de la version de configuration '1472165498'Notice :/Stage[main]/Main/Node[client.itzgeek. local]/File[/tmp/puppetesttdir]/ensure :createdNotice :Catalogue appliqué en 0,03 seconde

Vérifiez que le répertoire a été créé sur le nœud géré.

[root@client ~]# ls -ld /tmp/puppetesttdirdrwxr-xr-x. 2 root root 6 26 mai 09:57 /tmp/puppetesttdir

Refaisons le test une fois de plus en écrivant le manifeste pour créer un fichier avec du contenu.

node 'client.itzgeek.local' { # S'applique uniquement au nœud mentionné ; si rien n'est mentionné, s'applique à tous. Group Name mode => '0644', # File permissions content => "Ce fichier est créé par Puppet Server"}}

Vous pouvez accéder à la machine cliente et récupérer le catalogue comme indiqué dans l'exemple précédent ou l'agent Puppet obtiendra périodiquement le manifeste de Puppet Server en fonction de l'intervalle d'exécution que vous définissez dans le fichier de configuration.

Conclusion

J'espère que vous avez appris à installer Puppet Server et Agent sur CentOS 7 / RHEL 7. De plus, vous avez appris à créer un fichier manifeste simple pour créer 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 sur CentOS 8 / RHEL 8

  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