Puppet est un puissant outil de gestion de configuration open source qui peut être utilisé pour déployer, configurer, gérer et maintenir un serveur tout en y accédant à distance. Puppet est écrit en Ruby et vous aide à déployer et à gérer un serveur unique, jusqu'à des milliers de serveurs physiques et virtuels, le tout à partir d'un emplacement central.
Les modules Puppet sont des collections de fichiers manifestes et de données qui permettent à Puppet de charger et de trouver des classes, des faits, des fonctions, des types définis et des tâches. Avec les modules Puppet, vous pouvez installer et mettre à jour des packages, créer des fichiers et des répertoires et/ou apporter des modifications de configuration rapidement et facilement. Il vise à effectuer et à automatiser presque toutes les tâches, telles que le lancement d'un environnement LAMP, la configuration d'hôtes virtuels, etc.
Dans ce didacticiel, nous montrerons comment créer un module LAMP pour déployer une pile LAMP sur la machine de l'agent Puppet, qui sont tous deux des VPS Ubuntu 20.04. Commençons.
Avant de commencer
Vous aurez besoin de :
- Deux serveurs virtuels Ubuntu 20.04 avec le maître Puppet et l'agent Puppet configurés.
- Un accès root activé ou un utilisateur avec des privilèges sudo.
Mise en route
Tout d'abord, vous devrez vous connecter à votre serveur en utilisant SSH. Vous pouvez le faire en saisissant cette commande :
ssh root@IP_Address -p Port_Number
N'oubliez pas de remplacer "root" par votre nom d'utilisateur si vous n'utilisez pas l'utilisateur root. Modifiez "IP_Address" et "Port_Number" en fonction de l'adresse IP et du numéro de port SSH de votre serveur. Le numéro de port par défaut est 22.
Une fois connecté, vous pouvez passer à l'étape suivante.
Vérifier le serveur et l'agent Puppet
Tout d'abord, vérifiez le service Puppet en exécutant la commande suivante sur le nœud maître Puppet. Nous devons nous assurer que le service est actif et en cours d'exécution :
systemctl status puppetserver
Ensuite, répertoriez toutes les demandes d'agent signées et non signées avec la commande suivante :
/opt/puppetlabs/bin/puppetserver ca list --all
Vous devriez voir le résultat suivant :
Signed Certificates: puppet-client (SHA256) 58:73:AE:62:04:9E:B8:0F:16:07:83:08:34:4A:00:D2:E6:82:9B:47:2A:00:9F:F4:08:AE:56:A8:E7:1B:6A:31 puppet-master (SHA256) 7F:23:98:18:0E:3F:0F:FD:3E:12:FD:43:A6:50:C2:4C:58:0F:C6:EB:B0:5A:2A:74:6F:D8:A0:95:BC:31:EA:47alt names: ["DNS:puppet-master", "DNS:puppet-master"]authorization extensions: [pp_cli_auth: true]
Sur le nœud de l'agent Puppet, exécutez la commande suivante pour tester la connectivité entre les deux nœuds.
/opt/puppetlabs/bin/puppet agent --test
Si tout va bien, vous devriez obtenir le résultat suivant :
Info: Using configured environment 'production' Info: Retrieving pluginfacts Info: Retrieving plugin Info: Retrieving locales Info: Caching catalog for puppet-client Info: Applying configuration version '1583136740' Notice: Applied catalog in 0.05 seconds
Créer un module LAMPE
Tout d'abord, vous devrez créer un module LAMP sur le nœud maître Puppet. Pour créer un module, vous devez créer un répertoire dont le nom correspond au nom de votre module dans les modules
de Puppet répertoire, et il doit contenir un répertoire appelé manifests
, et ce répertoire doit contenir un init.pp
fichier.
Pour ce faire, changez le répertoire en répertoire du module Puppet et créez un répertoire nommé lamp
puis un manifests
répertoire à l'intérieur :
cd /etc/puppetlabs/code/modules/ mkdir -p lamp/manifests
Ensuite, créez un init.pp
fichier qui contiendra une classe Puppet correspondant au nom du module. Nous allons utiliser nano
pour cela, mais vous pouvez utiliser n'importe quel éditeur de texte que vous aimez.
nano lamp/manifests/init.pp
Ajoutez les lignes suivantes :
class lamp { # execute 'apt-get update' exec { 'apt-update': # exec resource named 'apt-update' command => '/usr/bin/apt-get update' # command this resource will run } # install apache2 package package { 'apache2': require => Exec['apt-update'], # require 'apt-update' before installing ensure => installed, } # ensure apache2 service is running service { 'apache2': ensure => running, } # install mysql-server package package { 'mysql-server': require => Exec['apt-update'], # require 'apt-update' before installing ensure => installed, } # ensure mysql service is running service { 'mysql': ensure => running, } # install php package package { 'php': require => Exec['apt-update'], # require 'apt-update' before installing ensure => installed, } # ensure info.php file exists file { '/var/www/html/info.php': ensure => file, content => '', # phpinfo code require => Package['apache2'], # require 'apache2' package before creating } }
Enregistrez et fermez le fichier lorsque vous avez terminé.
Créer le fichier manifeste principal
Un manifeste est un fichier qui contient des configurations client qui peuvent être utilisées pour installer la pile LAMP sur le nœud de l'agent. Le fichier manifeste principal de la marionnette se trouve dans /etc/puppetlabs/code/environments/production/manifests
répertoire.
Vous pouvez créer un nouveau fichier manifeste nommé site.pp
avec la commande suivante :
nano /etc/puppetlabs/code/environments/production/manifests/site.pp
Ajoutez les lignes suivantes :
node default { } node 'puppet-agent' { include lamp }
Enregistrez et fermez le fichier.
Dans le fichier ci-dessus, un bloc de nœud permet de spécifier le code Puppet qui ne s'appliquera qu'à certains nœuds d'agent. Le nœud par défaut s'applique à chaque nœud d'agent qui n'a pas de bloc de nœuds spécifié.
Ici, nous avons spécifié le puppet-agent
node block qui ne s'appliquera qu'à notre puppet-agent
nœud agent. Nous avons également ajouté la lampe include lamp
snippet pour que Puppet utilise le module de lampe sur le nœud de l'agent.
Testez le module LAMPE
Maintenant, vous devrez extraire la configuration LAMP sur le nœud agent à partir du nœud maître.
Sur le nœud agent, exécutez la commande suivante pour extraire la configuration LAMP du nœud maître.
/opt/puppetlabs/bin/puppet agent --test
Cela installera et configurera la pile LAMP sur le nœud de l'agent, comme illustré ci-dessous :
Info: Using configured environment 'production' Info: Retrieving pluginfacts Info: Retrieving plugin Info: Retrieving locales Info: Caching catalog for puppet-agent Info: Applying configuration version '1594188800' Notice: /Stage[main]/Lamp/Exec[apt-update]/returns: executed successfully Notice: /Stage[main]/Lamp/Package[apache2]/ensure: created Notice: /Stage[main]/Lamp/Package[mysql-server]/ensure: created Notice: /Stage[main]/Lamp/Package[php]/ensure: created Notice: /Stage[main]/Lamp/File[/var/www/html/info.php]/ensure: defined content as '{md5}d9c0c977ee96604e48b81d795236619a' Notice: Applied catalog in 73.09 seconds
Et avec cela, la pile LAMP est maintenant installée sur votre nœud d'agent. Pour le vérifier, ouvrez votre navigateur Web et tapez l'URL http://agent-ip-address/info.php
. Vous devriez voir votre page PHP.
Toutes nos félicitations! vous avez créé avec succès un module LAMP sur votre maître Puppet et l'avez déployé avec succès sur votre ou vos nœuds d'agent avec Puppet.
Le déploiement de ces modifications sur les nœuds d'agent est conçu pour être aussi simple et automatisé que possible, mais vous devez toujours configurer les deux côtés et effectuer ces tâches vous-même. Si vous utilisez l'un de nos forfaits VPS Ubuntu gérés, il vous suffit de demander à notre équipe d'administrateurs experts d'installer tout ce dont vous avez besoin pour vous. Ils peuvent installer et configurer tout ce que vous souhaitez, quand vous le souhaitez, ainsi que procéder à la maintenance du serveur, le tout sans que vous ayez à faire quoi que ce soit.
Nous espérons que vous avez trouvé ce tutoriel utile. Si tel est le cas, nous vous serions reconnaissants de partager ce didacticiel avec vos amis via les réseaux sociaux en utilisant nos raccourcis de partage, ou vous pouvez laisser un commentaire nous indiquant comment l'installation s'est déroulée pour vous. Merci.