GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer Puppet 6.x sur Ubuntu 18.04 / Ubuntu 16.04 et Debian 9

Lorsque vous pensez à un outil de gestion de configuration, celui qui vous vient à l'esprit est Puppet. Puppet est un outil de gestion de configuration open source qui vous aide à déployer et à gérer les configurations de centaines de systèmes clients à partir d'un emplacement central.

Puppet facilite la vie de l'administrateur système en réduisant le temps consacré aux tâches répétitives et leur permet de travailler sur d'autres travaux productifs, garantit également que toutes les configurations sont cohérentes 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 Server sur Ubuntu 18.04 / Ubuntu 16.04 et Debian 9.

Architecture

Agent / Maître

Dans cette architecture, un ou plusieurs serveurs exécutent l'application Puppet Master et l'application Puppet Agent s'exécute sur des nœuds gérés (serveurs clients), généralement en tant que service d'arrière-plan.

L'agent de marionnettes enverra des faits au maître de marionnettes et demandera un catalogue dans l'intervalle particulier. Le marionnettiste compilera et renverra le catalogue de ce nœud particulier, en utilisant les sources d'informations auxquelles il a accès.

Architecture autonome

Dans cette architecture, le nœud client exécute l'application puppet apply, généralement en tant que tâche cron.

Environnement

Ici, nous allons configurer une marionnette en architecture maître/agent et utiliserons deux systèmes, comme mentionné ci-dessous.

Maître des marionnettes

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

Adresse IP : 192.168.1.10

Client marionnette

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

Adresse IP : 192.168.1.20

Prérequis

Installer NTP

L'heure doit être définie avec précision sur un maître de marionnettes car il agira en tant qu'autorité de certification pour signer les certificats provenant des nœuds clients. Nous utiliserons NTP à cette fin.

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

sudo apt updatesudo apt install -y ntp ntpdatesudo ntpdate -u 0.ubuntu.pool.ntp.org

Fuseau horaire

Assurez-vous que tous les nœuds sont dans le même fuseau horaire en utilisant.

date

Sortie :

Mar 4 septembre 22:28:34 HAE 2018

S'il y a des écarts, modifiez-le en conséquence. Répertorier les fuseaux horaires disponibles.

timedatectl list-timezones

Définissez le fuseau horaire à l'aide de la commande suivante.

sudo timedatectl set-timezone America/New_York

DNS

L'agent Puppet utilise le nom d'hôte pour communiquer avec le serveur Puppet. Assurez-vous donc que le nœud de l'agent peut résoudre le nom d'hôte du serveur Puppet. Soit configurer /etc/hosts fichier ou serveur DNS.

Fichier /etc/hosts :

sudo nano /etc/hosts

Ajoutez une entrée d'hôte similaire à la ligne ci-dessous.

192.168.1.10 serveur.itzgeek.serveur local

Configurer le référentiel PuppetLabs

Pour installer le maître/agent de marionnettes, nous aurions besoin de configurer un référentiel de marionnettes sur tous les nœuds.

### Ubuntu 18.04 ### wget https://apt.puppetlabs.com/puppet6-release-bionic.debsudo dpkg -i puppet6-release-bionic.debsudo apt update### Ubuntu 16.04 ### wget https://apt.puppetlabs.com/puppet6-release-xenial.debsudo dpkg -i puppet6-release-xenial.debsudo apt update### Debian 9 ### wget https://apt.puppetlabs.com/puppet6-release-stretch.debsudo dpkg -i puppet6-release-stretch.debsudo apt mise à jour

Sur Ubuntu 18.04, activez le référentiel d'univers, qui contient les packages nécessaires pour Puppet Server.

Installer le serveur de marionnettes

Puppet Server est le logiciel serveur qui s'exécute sur le nœud maître de marionnettes. Installez le serveur Puppet en utilisant la commande ci-dessous.

sudo apt 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 (facultatif)

Par défaut, Puppet Server JVM est configuré pour utiliser 2 Go de RAM. Vous pouvez toujours personnaliser l'utilisation de la mémoire en fonction de la quantité de mémoire dont dispose 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.

sudo nano /etc/default/puppetserver

Modifiez la valeur affichée comme ci-dessous.

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"

Configuration des marionnettes

Configurations simples

Puppet Server ne nécessite aucune configuration et vous pouvez simplement démarrer le service puppetserver. Il utilisera les paramètres par défaut.

Par exemple :dns_alt_names (marionnette, ) .

Puppet prendra votre nom d'hôte système et votre marionnette comme noms DNS alternatifs pour Puppet Server. Ainsi, vous devrez utiliser server= ou server=puppet dans le fichier de configuration puppet-agent.

Configurations avancées (facultatif)

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

sudo nano /etc/puppetlabs/puppet/puppet.conf

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

[master]dns_alt_names =serveur.itzgeek.local,serveur [main]certname =server.itzgeek.localserver =server.itzgeek.localenvironment =productionruninterval =15m

Démarrer le serveur de marionnettes

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

configuration sudo /opt/puppetlabs/bin/puppetserver ca

Sortie :

Génération réussie. Trouvez vos fichiers dans /etc/puppetlabs/puppet/ssl/ca

Démarrez et activez le serveur Puppet.

sudo systemctl start puppetserversudo systemctl enable puppetserver

Installer l'agent de marionnettes

Configurez le référentiel Puppet sur votre nœud d'agent comme indiqué précédemment, puis installez l'agent Puppet à l'aide de la commande ci-dessous.

sudo apt install -y puppet-agent

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

sudo nano /etc/puppetlabs/puppet/puppet.conf
Définir le serveur valeur selon votre nom d'hôte principal et certname comme nom d'hôte de votre client. Dans mon cas, le serveur est server.itzgeek.local et certname est client.itzgeek.local.
[main]certname =client.itzgeek.local serveur =serveur.itzgeek.local environnement =productionruninterval =15m

Vous pouvez modifier la valeur de runinterval dépend de l'exigence. Cela contrôle la durée d'attente d'un agent entre les deux demandes de catalogue.

Vous pouvez régler la valeur en secondes (30s ou 30) ou en minutes (30m) ou en heures (1hr).

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

sudo /opt/puppetlabs/bin/puppet service de ressources puppetassure=running enable=true

Vous obtiendrez une sortie comme ci-dessous.

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

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 pour chaque nœud d'agent avant que ce nœud puisse récupérer les configurations. Les nœuds d'agent demanderont des certificats pour la première fois qu'ils tenteront 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.

sudo /opt/puppetlabs/bin/puppetserver liste d'autorité de certification

Sortie :

Certificats demandés :client.itzgeek.local (SHA256) 07:B1:57:5B:DE:AF:9F:4A:DF:4A:D1:CD:C4:2A:F9:9F:D9:76 :CD:C5:F1:60:09:9C:B4:BA:76:D6:7B:3C:6F:0D

Exécutez la commande ci-dessous pour signer une demande.

sudo /opt/puppetlabs/bin/puppetserver ca signe --certname client.itzgeek.local

Sortie :

Demande de certificat signée avec succès pour client.itzgeek.local

Pour signer toutes les demandes de signature de certificat en une seule commande.

sudo /opt/puppetlabs/bin/puppetserver ca signe --all

Dans certains cas, vous devrez peut-être révoquer le certificat d'un nœud particulier pour le relire. Remplacez avec votre nom d'hôte client.

sudo /opt/puppetlabs/bin/puppetserver peut révoquer --certname <AGENT_NAME> 

Répertoriez toutes les demandes signées et non signées. Vous devez exécuter sur le serveur maître.

sudo /opt/puppetlabs/bin/puppetserver ca list --all

Sortie :

Certificats signés :server.itzgeek.local (SHA256) E5:A4:93:45:EF:82:3B:FF:6E:36:D2:9A:F0:75:15:67:94:33 :06:2F:84:9F:D1:45:CE:C6:1C:86:D4:57:B8:25 noms alternatifs :["DNS:server.itzgeek.local", "DNS:server", "DNS :serveur.itzgeek.local"] client.itzgeek.local (SHA256) AB:3B:F0:D0:62:69:50:DD:50:45:CE:AD:A5:2C:4F:9E:EB:19 :D6:C6:9C:34:A3:C5:CD:84:8F:BA:50:04:4A:D0

Vérifier l'agent marionnette

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

sudo /opt/puppetlabs/bin/puppet agent --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 '1558888335'Notice :Catalogue appliqué en 0,02 seconde

Créer un 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 le manifeste de base pour créer un répertoire ainsi qu'un fichier sur la machine cliente.

Le fichier manifeste principal de la marionnette se trouve dans /etc/puppetlabs/code/environments/production/manifests répertoire. Créez un nouveau fichier manifeste.

sudo nano /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 client.

node 'client.itzgeek.local' { # S'applique uniquement au nœud mentionné. Si rien n'est mentionné, s'applique à tous. file { '/tmp/puppetdir' :# fichier de type de ressource assurer => 'répertoire', # Créer en tant que répertoire propriétaire => 'racine', # Propriété group => 'root', # Nom du groupe mode => '0755', # autorisations de répertoire }}
Si la variable node n'est pas définie, ce manifeste s'appliquera à tous les nœuds connectés au puppet master.

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

sudo /opt/puppetlabs/bin/puppet agent --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 :Catalogue de mise en cache pour client.itzgeek.localInfo :Application de la version de configuration '1558888460'Notice :/Stage[main]/Main/Node[client .itzgeek.local]/File[/tmp/puppetdir]/ensure :createdNotice :Catalogue appliqué en 0,16 seconde

Vérifiez que le répertoire a été créé sur le poste client.

ls -ld /tmp/puppetdir/

Sortie :

drwxr-xr-x 2 root root 4096 26 mai 22:03 /tmp/puppetdir/

Écrivons un 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. file { '/tmp/puppetfile' :# fichier de type de ressource assurer => 'présent', # Assurez-vous qu'il existe propriétaire => 'racine', # Propriété group => 'root', # Nom du groupe mode => '0644', # autorisations de fichier content => "Ce fichier est créé par Puppet Server" # Contenu du fichier }}

Vous pouvez accéder à la machine cliente et récupérer le catalogue comme indiqué dans l'exemple précédent ou attendre 15 minutes pour appliquer automatiquement le catalogue.

Conclusion

J'espère que cet article vous a aidé à installer Puppet Server sur Ubuntu 18.04 / Ubuntu 16.04 et Debian 9. Veuillez partager vos commentaires dans la section des commentaires.


Debian
  1. Comment installer le serveur Redis sur Debian 11

  2. Comment installer Puppet 6.x sur Ubuntu 18.04 / Ubuntu 16.04 et Debian 9

  3. Comment installer MySQL 8.0 / 5.7 sur Debian 11 / Debian 10

  4. Comment installer ProFTPD sur Debian 8

  5. Comment installer le serveur MySQL sur Debian 9

Comment installer FastPanel sur Debian 11

Comment installer I2P sur le serveur Debian :

Comment installer VNC sur Debian 10

Comment installer le serveur VNC sur Debian 11

Comment installer Mongoku sur Ubuntu 20.04 / Debian 11

Comment installer ODBC sur Ubuntu 20.04 / Debian 11 ?