** 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.
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.
--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.
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é.
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/
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
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
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