Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
Partager sur:

Comment installer Puppet Bolt pour automatiser les tâches Sysadmin?

l'automatisation
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Installation de Puppet Bolt sur Ubuntu…

Boulon de marionnette est un outil open-source largement utilisé pour automatiser le travail manuel.

YouTube vidéo

Bolt est basé sur Ruby et son outil de ligne de commande qui permet d'exécuter des scripts, des commandes sur un serveur local et distant via SSH et WinRM. Il aide Sysadmin à gérer plusieurs serveurs de plusieurs manières.

  • Gérer les mises à jour
  • L'installation du logiciel
  • Lecture des journaux
  • Arrêter ou démarrer les services
  • Exécution de la commande

La bonne nouvelle est que vous n'avez pas besoin d'installer d'agent sur les serveurs. C'est sans agent.

Prerequisite

L'exemple suivant est sur Ubuntu, vous avez donc besoin d'une VM Ubuntu avec sudo accès à la racine.

Update System

Nous vous recommandons vivement de mettre à niveau tous les référentiels et packages disponibles avant d'installer tout nouveau package sur le système. Exécutez la commande suivante et elle fera le travail pour vous.

sudo apt-get update

Installing Puppet Bolt

Comme il est sans agent, vous n'avez pas besoin d'installer sur chaque serveur. Au lieu de cela, juste sur un serveur qui agira comme un maître qui peut être utilisé pour se connecter à des serveurs distants. Bolt est un outil multi-plateforme vous permettant de l'installer sur votre système d'exploitation préféré.

  • Windows
  • macOS
  • RHEL
  • CentOS
  • Fedora
  • Debian
  • Ubuntu

Reportez-vous à site officiel pour la dernière version disponible. Installons-le sur Ubuntu.

Exécutez la commande suivante pour obtenir le package.

sudo wget https://apt.puppet.com/puppet6-release-bionic.deb

Ensuite, installez le paquet téléchargé ci-dessus à l'aide de la commande Debian package manager.

sudo dpkg -i puppet6-release-bionic.deb

Encore une fois, mettez à jour le système à l'aide de la commande suivante.

sudo apt-get update

Enfin, exécutez la commande suivante pour installer le boulon.

sudo apt-get install puppet-bolt

Vous avez installé avec succès boulon de marionnette sur votre serveur.

Cela doit être fait sur tous les serveurs que vous souhaitez gérer via Bolt.

Comme mentionné précédemment, Bolt se connecte à un autre serveur via une clé SSH, donc je suppose que vous avez déjà une clé échangée entre les serveurs. Sinon, vous pouvez le référer guide de configuration de l'échange de clés SSH.

Connectons-nous à des serveurs distants et exécutons des commandes bolt.

Pour exécuter une commande sur un seul nœud, utilisez la commande suivante.

bolt command run <COMMAND> --nodes <NODE>

Veuillez remplacer COMMAND par la commande que vous souhaitez exécuter et NODE par le nom d'hôte ou l'adresse IP du serveur distant. De même, vous pouvez également exécuter une commande sur plusieurs nœuds.

bolt command run <COMMAND> -n <NODE1,NODE2,NODE3,NODE4>

Si vous devez ajouter une authentification par mot de passe à une commande, vous pouvez l'ajouter à l'aide des indicateurs.

bolt command run <COMMAND> -n <NODE1,NODE2> -u <USER> -p <PASSWORD>

Supposons que vous souhaitiez voir depuis combien de temps le système fonctionne, vous devrez alors utiliser la commande `uptime` comme ceci:

bolt command run uptime --nodes 35.185.68.71,35.231.9.135

Vous devriez voir la sortie suivante.

sajid@Sajid-PC:~$ bolt command run uptime --nodes 35.185.68.71,35.231.9.135
Started on 35.185.68.71...
Started on 35.231.9.135...
Finished on 35.231.9.135:
STDOUT:
04:57:48 up 7 min, 0 users, load average: 0.00, 0.03, 0.02
Finished on 35.185.68.71:
STDOUT:
04:57:48 up 9 min, 0 users, load average: 0.00, 0.00, 0.00
Successful on 2 nodes: 35.185.68.71,35.231.9.135
Ran on 2 nodes in 5.96 seconds

Il se peut que vous souhaitiez exécuter une commande contenant les espaces, vous devrez donc placer la commande entre guillemets simples:

sajid@Sajid-PC:~$ bolt command run 'echo $HOME' --nodes 35.185.68.71,35.231.9.135
Started on 35.185.68.71...
Started on 35.231.9.135...
Finished on 35.231.9.135:
STDOUT:
/home/sajid
Finished on 35.185.68.71:
STDOUT:
/home/sajid
Successful on 2 nodes: 35.185.68.71,35.231.9.135
Ran on 2 nodes in 6.11 seconds

Running Scripts

Nous avons tous un ensemble de scripts que nous utilisons régulièrement.

Bolt permet de réutiliser facilement ces scripts sans aucune modification et de les exécuter sur encore plus de nœuds simultanément. Tout ce que vous avez à faire est de spécifier le nom et le chemin du script que vous souhaitez exécuter.

bolt script run <PATH/TO/SCRIPT> --nodes <NODE1,NODE2,NODE3,NODE4>
bolt script run /home/sajid/Desktop/samplescript.sh --nodes 35.185.68.71,35.231.9.135

Vous devriez voir la sortie quelque chose de similaire à ceci:

sajid@Sajid-PC:/$ bolt script run /home/sajid/Desktop/samplescript.sh --nodes 35.185.68.71,35.231.9.135
Started on 35.185.68.71...
Started on 35.231.9.135...
Finished on 35.231.9.135:
STDOUT:
Hello World
Finished on 35.185.68.71:
STDOUT:
Hello World
Successful on 2 nodes: 35.185.68.71,35.231.9.135
Ran on 2 nodes in 15.18 seconds

Vous pouvez exécuter des scripts dans n'importe quelle langue à condition que l'interpréteur approprié soit installé sur le système distant.

Automation with Task

La tâche est un ensemble d'actions que vous souhaitez exécuter sur des machines distantes.

Les tâches peuvent être écrites dans n'importe quelle langue exécutée sur un nœud distant. Les tâches facilitent la réutilisation et le partage de scripts et vous aident à réaliser l'automatisation. Vous pouvez télécharger certaines tâches existantes à partir de Puppet forge et y télécharger vos tâches selon vos besoins.

Par exemple, si vous souhaitez vérifier l'état du package vim, vous pouvez utiliser la commande suivante.

bolt task run package action=status name=vim --nodes 35.185.68.71,35.231.9.135

Vous verrez la sortie similaire à ceci:

sajid@Sajid-PC:~$ bolt task run package action=status name=vim --nodes 35.185.68.71,35.231.9.135
Started on 35.185.68.71...
Started on 35.231.9.135...
Finished on 35.185.68.71:
{
"status": "install ok installed",
"version": "2:7.4.1689-3ubuntu1.3"
}
Finished on 35.231.9.135:
{
"status": "install ok installed",
"version": "2:7.4.1689-3ubuntu1.3"
}
Successful on 2 nodes: 35.185.68.71,35.231.9.135
Ran on 2 nodes in 19.15 seconds

Si vous ne trouvez pas le package vim installé, vous pouvez l'installer à l'aide de la commande suivante.

bolt task run package action=install name=vim --nodes 35.185.68.71,35.231.9.135

Vous pouvez exécuter un plan pour configurer nodejs et le connecter à votre équilibreur de charge, vous pouvez le faire en combinant Puppet Bolt avec un nœud cible sur lequel Bolt est déjà installé.

bolt plan run nodejs::myplan load_balancer=lb.myorg.com

Vous pouvez utiliser le boulon de marionnette pour copier des fichiers sur des nœuds distants. Vous pouvez simplement télécharger le fichier ou le répertoire sur le nœud distant en utilisant la commande `bolt file upload`. Tout ce que vous avez à faire est de spécifier le chemin du fichier sur la machine locale et la destination sur le nœud distant.

bolt file upload <SOURCE> <DESTINATION> --nodes <NODE1>

Vous pouvez télécharger un fichier sur plusieurs nœuds distants simultanément comme ceci:

bolt file upload sample_file.txt /tmp/remotesample_file.txt --nodes 35.185.68.71,35.231.9.135

Beaucoup de possibilités comme vous pouvez le voir.

Creating an Inventory file

Bolt vous permet de créer un fichier d'inventaire qui stockera des informations sur vos nœuds, vos tâches et votre configuration. Vous pouvez spécifier différents nœuds dans un groupe et le fichier d'inventaire par défaut stocké dans inventaire.yaml dans le répertoire du projet. Voici un exemple de création d'un fichier d'inventaire.

---
# Example Inventory file
groups:
- name: Group of nodes
nodes:
- node1
- node2
- node3
config:
ssh:
host-key-check: false
ssl: false

Vous pouvez remplacer ces node1, node2, node3 par votre nom de domaine de nœud réel ou l'adresse IP de vos nœuds. Vous pouvez maintenant ajouter ce fichier d'inventaire dans les commandes bolt pour exécuter des tâches sur les nœuds spécifiés.

bolt command run <COMMAND> --inventoryfile ./inventory.yaml

Conclusion

J'espère que vous avez maintenant une idée de ce qu'est Bolt et comment il peut vous aider avec l'automatisation. Vous pourriez également être intéressé à en savoir plus sur Fantoche.

Merci à nos commanditaires
Plus de bonnes lectures sur DevOps
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Semrush est une solution de marketing numérique tout-en-un avec plus de 50 outils de référencement, de médias sociaux et de marketing de contenu.
    Essayez Semrush
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder