• Assurez la sécurité des applications de la bonne manière! Détectez, protégez, surveillez, accélérez et plus encore…
  • Installation de Puppet Bolt sur Ubuntu…

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

    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.

    Prérequis

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

    Système de mise à

    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

    Installation du boulon de marionnette

    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
    • feutre
    • 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.

    [email protected]:~$ 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:

    [email protected]:~$ 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

    Scripts en cours d'exécution

    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:

    [email protected]:/$ 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.

    Automatisation avec tâche

    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:

    [email protected]:~$ 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.

    Créer un fichier d'inventaire

    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.