Puppet Bolt unter Ubuntu installieren…
Marionettenbolzen ist ein Open-Source-Tool, das häufig zur Automatisierung der manuellen Arbeit verwendet wird.

Bolt basiert auf Ruby und seinem Befehlszeilentool, mit dem Skripts ausgeführt und Befehle auf einem lokalen und Remote-Server über SSH und WinRM ausgeführt werden. Es hilft Sysadmin, mehrere Server auf viele Arten zu verwalten.
- Updates verwalten
- Software-Installation
- Protokoll lesen
- Dienste stoppen oder starten
- Befehlsausführung
Die gute Nachricht ist, dass Sie keinen Agenten auf den Servern installieren müssen. Es ist agentenlos.
Prerequisite
Das folgende Beispiel ist unter Ubuntu, daher benötigen Sie eine Ubuntu-VM mit sudo
Zugriff auf root.
Update System
Wir empfehlen Ihnen dringend, das gesamte verfügbare Repository und Paket zu aktualisieren, bevor Sie ein neues Paket auf dem System installieren. Führen Sie den folgenden Befehl aus, und er erledigt die Aufgabe für Sie.
sudo apt-get update
Installing Puppet Bolt
Da es agentenlos ist, müssen Sie nicht auf jedem Server installieren. Stattdessen nur auf einem Server, der als Master fungiert und zur Verbindung mit Remote-Servern verwendet werden kann. Bolt ist ein plattformübergreifendes Tool, mit dem Sie es auf Ihrem bevorzugten Betriebssystem installieren können.
- Windows
- macOS
- RHEL
- CentOS
- Fedora
- Debian
- Ubuntu
Siehe die offizielle Seite für die neueste verfügbare Version. Lassen Sie uns dies auf Ubuntu installieren.
Führen Sie den folgenden Befehl aus, um das Paket abzurufen.
sudo wget https://apt.puppet.com/puppet6-release-bionic.deb
Installieren Sie als Nächstes das oben heruntergeladene Paket mit dem Befehl Debian package manager.
sudo dpkg -i puppet6-release-bionic.deb
Aktualisieren Sie das System erneut mit dem folgenden Befehl.
sudo apt-get update
Führen Sie abschließend den folgenden Befehl aus, um die Schraube zu installieren.
sudo apt-get install puppet-bolt
Sie haben erfolgreich installiert Marionettenbolzen auf Ihrem Server.
Dies muss auf allen Servern erfolgen, die Sie über Bolt verwalten möchten.
Wie bereits erwähnt, stellt Bolt über den SSH-Schlüssel eine Verbindung zu einem anderen Server her. Ich gehe also davon aus, dass Sie bereits einen Schlüssel zwischen den Servern ausgetauscht haben. Wenn nicht, können Sie dies verweisen Anleitung zum Einrichten des SSH-Schlüsselaustauschs.
Stellen Sie eine Verbindung zu Remote-Servern her und führen Sie Bolt-Befehle aus.
Verwenden Sie den folgenden Befehl, um einen Befehl auf einem einzelnen Knoten auszuführen.
bolt command run <COMMAND> --nodes <NODE>
Bitte ersetzen Sie den BEFEHL durch den Befehl, den Sie ausführen möchten, und NODE durch den Hostnamen oder die IP des Remote-Servers. In ähnlicher Weise können Sie einen Befehl auch auf mehreren Knoten ausführen.
bolt command run <COMMAND> -n <NODE1,NODE2,NODE3,NODE4>
Wenn Sie einem Befehl eine Kennwortauthentifizierung hinzufügen müssen, können Sie diese mithilfe der Flags hinzufügen.
bolt command run <COMMAND> -n <NODE1,NODE2> -u <USER> -p <PASSWORD>
Angenommen, Sie möchten sehen, wie lange das System ausgeführt wurde, dann müssen Sie den Befehl `uptime` wie folgt verwenden:
bolt command run uptime --nodes 35.185.68.71,35.231.9.135
Sie sollten die folgende Ausgabe sehen.
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
Möglicherweise möchten Sie einen Befehl ausführen, der die Leerzeichen enthält, sodass Sie den Befehl in einfache Anführungszeichen setzen müssen:
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
Wir haben alle eine Reihe von Skripten, die wir regelmäßig verwenden.
Mit Bolt ist es einfach, diese Skripte ohne Änderungen wiederzuverwenden und auf noch mehr Knoten gleichzeitig auszuführen. Sie müssen lediglich den Namen und den Pfad des Skripts angeben, das Sie ausführen möchten.
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
Sie sollten die Ausgabe ähnlich sehen:
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
Sie können Skripte in jeder Sprache ausführen, solange der entsprechende Interpreter auf dem Remote-System installiert ist.
Automation with Task
Die Aufgabe besteht aus einer Reihe von Aktionen, die Sie auf Remotecomputern ausführen möchten.
Aufgaben können in jeder Sprache geschrieben werden, die auf einem Remote-Knoten ausgeführt wird. Aufgaben erleichtern die Wiederverwendung und Freigabe von Skripten und helfen Ihnen bei der Automatisierung. Sie können einige vorhandene Aufgaben von Puppet Forge herunterladen und Ihre Aufgaben dort nach Bedarf hochladen.
Wenn Sie beispielsweise den Status des vim-Pakets überprüfen möchten, können Sie den folgenden Befehl verwenden.
bolt task run package action=status name=vim --nodes 35.185.68.71,35.231.9.135
Sie sehen die Ausgabe ähnlich wie folgt:
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
Wenn Sie das installierte vim-Paket nicht finden, können Sie es mit dem folgenden Befehl installieren.
bolt task run package action=install name=vim --nodes 35.185.68.71,35.231.9.135
Sie können plan ausführen, um nodejs einzurichten und mit Ihrem Load Balancer zu verbinden. Sie können dies tun, indem Sie Puppet Bolt mit einem Zielknoten kombinieren, auf dem der Bolt bereits installiert ist.
bolt plan run nodejs::myplan load_balancer=lb.myorg.com
Sie können Puppet Bolt verwenden, um Dateien auf Remote-Knoten zu kopieren. Sie können die Datei oder das Verzeichnis einfach mit dem Befehl "Bolt File Upload" auf den Remote-Knoten hochladen. Sie müssen lediglich den Pfad der Datei auf dem lokalen Computer und das Ziel auf dem Remote-Knoten angeben.
bolt file upload <SOURCE> <DESTINATION> --nodes <NODE1>
Sie können eine Datei auf mehrere Remote-Knoten gleichzeitig hochladen:
bolt file upload sample_file.txt /tmp/remotesample_file.txt --nodes 35.185.68.71,35.231.9.135
Viele Möglichkeiten, wie Sie sehen können.
Creating an Inventory file
Mit Bolt können Sie eine Inventardatei erstellen, in der Informationen zu Ihren Knoten, Aufgaben und Konfigurationen gespeichert werden. Sie können verschiedene Knoten in einer Gruppe angeben und die Inventardatei standardmäßig in der Datei inventar.yaml im Projektverzeichnis speichern. Hier ist ein Beispiel für die Erstellung einer Inventardatei.
---
# Example Inventory file
groups:
- name: Group of nodes
nodes:
- node1
- node2
- node3
config:
ssh:
host-key-check: false
ssl: false
Sie können diese Knoten1, Knoten2, Knoten3 durch Ihren tatsächlichen Knotendomänennamen oder die IP-Adresse Ihrer Knoten ersetzen. Sie können diese Inventardatei jetzt zu den Bolzenbefehlen hinzufügen, um Aufgaben auf den angegebenen Knoten auszuführen.
bolt command run <COMMAND> --inventoryfile ./inventory.yaml
Conclusion
Ich hoffe, Sie haben jetzt eine Vorstellung davon, was Bolt ist und wie es Ihnen bei der Automatisierung helfen kann. Sie könnten auch daran interessiert sein, etwas darüber zu lernen Marionette.