[RUBY] Installez Puppet Master and Client sur Ubuntu 16.04

** Puppet ** est un système de gestion de configuration open source pour une variété d'applications, de l'automatisation à l'installation de mise à jour.

Préface

Puppet est un système de gestion de configuration open source qui peut être largement utilisé de l'automatisation à l'installation de mise à jour. Écrit en Ruby, il est spécialement conçu pour gérer les paramètres du système d'exploitation comme Unix et Windows. Des milliers de serveurs physiques et virtuels peuvent être gérés de manière centralisée à partir d'un seul serveur pour une installation et une gestion faciles.

Puppet peut être utilisé à la fois dans des architectures client-serveur et autonomes. Dans l'architecture client-serveur, le serveur est appelé maître et le client est appelé agent. Il existe deux versions de Puppet, Enterprise et Open source. Les deux prennent en charge de nombreuses distributions Linux et Windows. Puppet aide les administrateurs système en réduisant le temps qu'ils passent sur des tâches répétitives et en leur permettant de se concentrer sur des projets qui offrent une plus grande valeur commerciale.

Fonctionnalité

--Puppet prend en charge l'Idempotency, ce qui facilite l'exécution des mêmes paramètres plusieurs fois sur la même machine.

Ce guide fournit des étapes pour installer et configurer le Puppet open source sur un serveur Ubuntu 16.04 avec une instance Alibaba Cloud Elastic Compute Service (ECS) dans une architecture client / serveur.

Conditions préalables

Réglage du nom d'hôte

Avant de commencer, vous devez configurer les fichiers / etc / hosts et / etc / hostname sur les nœuds Serveur et Agent pour permettre à ces fichiers de communiquer entre eux.

Ouvrez les fichiers / etc / hosts et / etc / hostname sur le nœud Serveur et apportez les modifications suivantes:

sudo nano /etc/hosts

Ajoutez la ligne suivante à la fin du fichier.

192.168.0.0.103 puppet-server

sudo nano /etc/hostname

Modifiez le fichier comme suit.

puppet-server

Enregistrez et fermez le fichier lorsque vous avez terminé.

Ouvrez les fichiers / etc / hosts et / etc / hostname sur le nœud Agent et apportez les modifications suivantes:

sudo nano /etc/hosts

Ajoutez la ligne suivante à la fin du fichier.

192.168.0.0.103 puppet-server

sudo nano /etc/hostname

Modifiez le fichier comme suit.

puppet-agent

Enregistrez et fermez lorsque vous avez terminé.

Installer Puppet

Le serveur Puppet n'est pas disponible dans le référentiel par défaut pour Ubuntu 16.04. Par conséquent, vous devez ajouter le référentiel Puppet Lab aux nœuds maître et agent.

Exécutez la commande suivante sur chaque nœud pour télécharger et installer le référentiel Puppet.

wget https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
sudo dpkg -i puppetlabs-release-pc1-xenial.deb
sudo apt-get update -y

Installez ensuite le package du serveur Puppet sur le nœud maître avec la commande suivante:

sudo apt-get install puppetserver -y

Après avoir installé le serveur Puppet, vous devez définir l'allocation de mémoire. Nous vous recommandons de personnaliser l'utilisation de la mémoire en fonction de la quantité de mémoire sur le nœud maître. Cela peut être fait en éditant le fichier / etc / default / puppetserver.

sudo nano /etc/default/puppetserver

Modifiez la ligne en fonction de la capacité du serveur.

Modifiez la ligne suivante.

À partir de JAVA_ARGS =" - Xms2g -Xmx2g -XX: MaxPermSize = 256m "

Accédez à JAVA_ARGS =" -Xms512m -Xmx512m ".

Enregistrez et fermez le fichier et démarrez le serveur Puppet avec la commande suivante afin qu'il puisse être démarré au démarrage.

sudo systemctl start puppetserver
sudo systemctl enable puppetserver

Vous pouvez vérifier l'état du serveur Puppet avec la commande suivante.

sudo systemctl status puppetserver

Si tout va bien, vous devriez voir une sortie similaire à ce qui suit:

● puppetserver.service - puppetserver Service
   Loaded: loaded (/lib/systemd/system/puppetserver.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-10-28 18:47:26 IST; 12min ago
  Process: 887 ExecStart=/opt/puppetlabs/server/apps/puppetserver/bin/puppetserver start (code=exited, status=0/SUCCESS)
 Main PID: 963 (java)
   CGroup: /system.slice/puppetserver.service
           └─963 /usr/bin/java -Xms256m -Xmx256m -Djava.security.egd=/dev/urandom -XX:OnOutOfMemoryError=kill -9 %p -cp /opt/puppetlabs/server/

Installation de l'agent Puppet

Le serveur Puppet est maintenant opérationnel. Il est enfin temps d'installer l'agent Puppet sur le nœud Agent.

Avant d'installer l'agent Puppet, assurez-vous que le référentiel Puppet Lab est installé sur le nœud Agent. Ensuite, exécutez simplement la commande suivante pour installer l'agent Puppet.

sudo apt-get install puppet-agent -y

Après avoir installé l'agent Puppet, vous devez modifier le fichier de configuration de la marionnette pour définir les informations de maître de la marionnette.

Cela peut être fait avec la commande suivante:

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

Ajoutez la ligne suivante.

[main]
certname = puppet-agent
server = puppet-server
environment = IT

Enregistrez et fermez le fichier et démarrez le service Puppet Agent avec la commande suivante afin qu'il puisse être démarré au démarrage.

sudo systemctl start puppet
sudo systemctl enable puppet

Signez le certificat d'agent de marionnettes sur le serveur de marionnettes

La première fois que Puppet exécute un nœud d'agent, Puppet envoie une demande de signature de certificat au serveur Puppet. Dans une architecture client-serveur, le serveur maître marionnette doit approuver la demande de certificat pour chaque nœud d'agent afin de contrôler les nœuds d'agent.

Sur le serveur de marionnettes, répertoriez toutes les demandes de certificat non signées avec la commande suivante:

sudo /opt/puppetlabs/bin/puppet cert list

Vous devriez voir une demande avec le nom d'hôte du nœud d'agent.

"puppet-agent" (SHA256) 7C:28:E8:AF:09:23:55:19:AF:C1:EE:C3:66:F2:02:73:AD:7F:53:17:28:CE:B0:26:AE:C7:6C:67:16:05:6F:2E

Signez ensuite la demande de certificat avec la commande suivante:

sudo /opt/puppetlabs/bin/puppet cert sign puppet-agent

Vous devriez voir une sortie similaire à ce qui suit.

Signing Certificate Request for:
  "puppet-agent" (SHA256) 7C:28:E8:AF:09:23:55:19:AF:C1:EE:C3:66:F2:02:73:AD:7F:53:17:28:CE:B0:26:AE:C7:6C:67:16:05:6F:2E
Notice: Signed certificate request for puppet-agent
Notice: Removing file Puppet::SSL::CertificateRequest puppet-agent at '/etc/puppetlabs/puppet/ssl/ca/requests/puppet-agent.pem'

Le serveur maître Puppet peut désormais communiquer et contrôler le nœud d'agent. Si vous souhaitez signer des demandes de certificat pour plusieurs nœuds à la fois, exécutez la commande suivante:

sudo /opt/puppetlabs/bin/puppet cert sign —all

Une fois que le maître Puppet a signé le certificat Puppet Agent, exécutez la commande suivante sur le nœud Puppet Agent pour le tester.

sudo /opt/puppetlabs/bin/puppet agent —test

Si tout est fait correctement, vous devriez voir une sortie similaire à ce qui suit:

Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for puppet-agent
Info: Applying configuration version '1509200872'
Notice: Applied catalog in 0.09 seconds

Configurer le serveur Puppet pour installer Apache sur le nœud d'agent

Cela termine les paramètres pour le maître Puppet et le nœud d'agent, et ils fonctionnent maintenant. Vérifions enfin Puppet.

Pour ce faire, créez un fichier manifeste pour installer le serveur Web Apache sur le nœud Agent. Le manifeste est un fichier de données contenant les paramètres du client. Par défaut, le fichier manifeste se trouve dans le répertoire / etc / puppetlabs / code / environnements / production / manifestests /.

Vous devez installer le module puppetlabs-apache avant de créer le fichier manifeste.

Sur le nœud maître Puppet, exécutez la commande suivante pour installer le module puppetlabs-apache.

sudo /opt/puppetlabs/bin/puppet module install puppetlabs-apache

Vous devriez voir une sortie similaire à ce qui suit.

Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules ...
Notice: Downloading from https://forgeapi.puppet.com ...
Notice: Installing -- do not interrupt ...
/etc/puppetlabs/code/environments/production/modules
└─┬ puppetlabs-apache (v2.3.0)
  ├── puppetlabs-concat (v4.1.0)
  └── puppetlabs-stdlib (v4.20.0)

Ensuite, créez un fichier manifeste sur le maître Puppet avec la commande suivante.

sudo nano /etc/puppetlabs/code/environments/production/manifests/site.pp

Ajoutez la ligne suivante.

node 'puppet-agent' {
  class { 'apache': }             # use apache module
  apache::vhost { 'localhost':  # define vhost resource
    port    => '80',
    docroot => '/var/www/html'
  }
}

La configuration ci-dessus installe Apache, configure un hôte virtuel appelé localhost, écoute sur le port 80 et a un document root / var / www / html sur le nœud Agent.

Maintenant, exécutez la commande suivante sur le nœud Agent pour obtenir tous les paramètres du fichier manifeste.

sudo /opt/puppetlabs/bin/puppet agent —test

Si tout se passe bien, vous devriez voir une sortie similaire à ce qui suit:

`` Notice: /Stage[main]/Apache/Apache::Vhost[default]/File[15-default.conf symlink]/ensure: created Info: /Stage[main]/Apache/Apache::Vhost[default]/File[15-default.conf symlink]: Scheduling refresh of Class[Apache::Service] Notice: /Stage[main]/Main/Node[puppet-agent]/Apache::Vhost[localhost]/Concat[25-localhost.conf]/File[/etc/apache2/sites-available/25-localhost.conf]/ensure: defined content as '{md5}05a8b8c6772009021086814bdf8c985e' Info: Concat[25-localhost.conf]: Scheduling refresh of Class[Apache::Service] Notice: /Stage[main]/Main/Node[puppet-agent]/Apache::Vhost[localhost]/File[25-localhost.conf symlink]/ensure: created Info: /Stage[main]/Main/Node[puppet-agent]/Apache::Vhost[localhost]/File[25-localhost.conf symlink]: Scheduling refresh of Class[Apache::Service] Info: Class[Apache::Service]: Scheduling refresh of Service[httpd] Notice: /Stage[main]/Apache::Service/Service[httpd]: Triggered 'refresh' from 1 events Notice: Applied catalog in 53.11 seconds


Toutes nos félicitations. Apache est maintenant installé et en cours d'exécution sur le nœud Agent.

####Conclusion
Dans ce didacticiel, vous pouvez facilement installer le serveur Puppet dans votre environnement de production et gérer facilement l'ensemble de votre infrastructure informatique. Pour plus d'informations sur Puppet, consultez la page de documentation officielle de Puppet. Pour d'autres tutoriels,[Alibaba Cloud Getting Started](https://www.alibabacloud.com/ja/getting-started)Il est également publié sur la chaîne.

*Alibaba Cloud possède deux centres de données au Japon et compte plus de 60 zones de disponibilité dans la région Asie-Pacifique No..1(Gartner 2019)Est un opérateur d'infrastructure cloud.
Cliquez ici pour plus d'informations sur Alibaba Cloud.
[Page officielle d'Alibaba Cloud Japan](https://www.alibabacloud.com/ja)*






Recommended Posts

Installez Puppet Master and Client sur Ubuntu 16.04
Installez Mecab et mecab-python3 sur Ubuntu 14.04
Installez et exécutez Dropbox sur Ubuntu 20.04
Installez OpenCV et Chainer sur Ubuntu
Installez CUDA 8.0 et Chainer sur Ubuntu 16.04
Installez le fabric sur Ubuntu et essayez
Installez wsl2 et master linux sous Windows
Installez pyenv et Python 3.6.8 sur Ubuntu 18.04 LTS
Installez TensorFlow sur Ubuntu
Installez PySide2 sur Ubuntu
Installez JModelica sur Ubuntu
Installez Python 3.3 sur Ubuntu 12.04
Installez Theano sur Ubuntu 12.04
Installez angr sur Ubuntu 18.04
Installez pip / pip3 sur Ubuntu
Installez MongoDB sur Ubuntu 16.04 et utilisez python
Installez Apache 2.4 sur Ubuntu 19.10 Eoan Ermine et exécutez CGI
wsl Installer PostgreSQL sur Ubuntu 18.04
[ROS] Installer ROS (mélodique) sur Ubuntu (18.04)
Installez Caffe sur Ubuntu 14.04 (GPU)
Installer Docker sur WSL Ubuntu 18.04
Installer python3 et autour de la bibliothèque de calcul scientifique sur Ubuntu (virtualenv + pip)
Installez CUDA10.1 + cuDNN7.6.5 + tensorflow-2.3.0 sur Ubuntu 18.04
Installez Python 3.8 sur Ubuntu 18.04 (norme du système d'exploitation)
Installez Caffe sur Ubuntu 14.04 (mode CPU)
Installez Python 3.8 sur Ubuntu 20.04 (norme du système d'exploitation)
Installez Python 3.9 sur Ubuntu 20.04 (norme du système d'exploitation?)
Installez confluent-kafka pour Python sur Ubuntu
Installez Python 2.7 sur Ubuntu 20.04 (norme du système d'exploitation?)
Etude ROS # 1 Installation de ros-noetic sur Ubuntu 20.04
Installez easy_install et pip sur Windows
Installez Ubuntu 18.04 sur le modèle de la barre tactile MacBook Pro et connectez-vous au WIFI
Créer un environnement Python 3 et OpenCV sur Ubuntu 18.04
Environnement virtuel Python et packages sur Ubuntu
Installer et lancer k3s sur Manjaro Linux
Installer et configurer le serveur TigerVNC sous Linux
Installez ubuntu sur un ordinateur portable UEFI Ultra 32 bits
Installez Caffe exécutant 3D-CNN sur un Ubuntu 14.04 propre
Comment installer php7.4 sur Linux (Ubuntu)
Installez pyenv et rbenv à l'échelle du système sur CentOS
Installer matplotlib et afficher le graphique dans Jupyter Notebook
Dask ne peut pas être installé sur Ubuntu avec pip
Installez et exécutez Python3.5 + NumPy + SciPy sur Windows 10
Installer le package python dans l'environnement personnel sur Ubuntu
[Mémo de procédure] Installez Python3 + OpenSSL localement sur Ubuntu
Shebang sur Ubuntu 20.04
Installez OpenCV 4.0 et Python 3.7 sur Windows 10 avec Anaconda
Installez pip et pandas avec Ubuntu ou VScode
Jusqu'à ce que vous créiez une clé USB de démarrage Ubuntu sur votre Macbook et installiez Ubuntu sur votre Thinkpad
Installez le dernier Cuda + CuDNN sur Ubuntu 18.04 @ Spring 2020
[Ubuntu] Installez Android Studio et créez un raccourci
Installez la version 64 bits d'Ubuntu 20.04 LTS (serveur) sur RaspberryPi3B +
Installer Python et les bibliothèques pour Python sur MacOS Catalina
Installation et configuration du client PyFilter pour surveiller les connexions SSH au serveur Alibaba Cloud Ubuntu
Installez la version ZIP Python et pip sur Windows 10
[AWS EC2] Comment installer uniquement le client MySQL sur Amazon Linux 2 et se connecter à RDS
Installez la dernière version de CMake sur Ubuntu 18.04.4 LTS
Installez Python 3 sur Mac et créez un environnement [Definitive Edition]