Es unterstützt zwei Methoden zum Verwalten von Remote -Maschinen: Ad -hoc -Befehle und Ansible Playbooks. Ad -hoc -Befehle sind Rohbefehle, die Sie im Terminal ausführen können, um eine Aufgabe in einer einzelnen Instanz auszuführen.
Ansible Playbooks hingegen sind Dateien, die in der YAML -Sprache geschrieben wurden. Sie enthalten eine einzelne oder eine Reihe von Aufgaben, die auf der Fernmaschine ausgeführt werden. Aufgrund der strengen Natur von Yaml erfordern Ansible -Playbooks in der allgemeinen Syntax sorgfältiges Aufmerksamkeit.
Dieses Tutorial führt Sie durch die Grundlagen des Schreibens von ansiblen Playbooks und der Ausführung von Befehlen auf Remote -Maschinen. Für die Illustrationen in diesem Handbuch werden ein einfaches Playbook eingerichtet, das Apache -Webserver installiert und konfiguriert.
NOTIZ: Dieses Tutorial bestreitet nicht, Sie Ansible beizubringen. Alles, was es tut, ist Ihnen Tipps und Richtlinien zum Schreiben eines Ansible Playbooks zu geben.
Voraussetzungen
Um den maximalen Wert aus diesem Leitfaden herauszuholen, empfehlen wir den Anhänger. Das Folgende sind Dinge, die Sie benötigen.
Sobald Sie beide oben genannten Anforderungen erfüllt haben, können wir beginnen.
So installieren Sie Ansible auf Debian/Ubuntu
Der allererste Schritt besteht darin, sicherzustellen, dass wir ansible installiert und auf unserer lokalen Maschine ausgeführt werden. Ich werde Ubuntu für dieses Tutorial verwenden.
Schritt 1
Aktualisieren Sie Ihr System mit den folgenden Befehlen:
Schritt 2
Verwenden Sie als nächstes die folgenden Befehle, um Ansible auf Ubuntu zu installieren.
Nachdem wir es auf Ihrem lokalen Computer installiert haben, können wir es konfigurieren, um es zu konfigurieren.
So richten Sie Ansible Inventory ein
Um die Remote -Server mithilfe von Ansible zu verwalten, müssen Sie Ansible darüber erzählen. Wir tun dies, indem wir eine Inventardatei erstellen, die die IP -Adressen oder Hostnamen der Remote -Maschinen enthält.
Standardmäßig ist die Host -Inventardatei in/etc/ansible/hosts.
Um zu erfahren, wie Sie eine benutzerdefinierte Host -Inventardatei in Ansible erstellen können, sollten Sie eines unserer Tutorials in Betracht ziehen.
Bearbeiten Sie die Datei/etc/ansible/hosts und fügen Sie die IP -Adresse Ihres Remote -Computers hinzu, wie unten gezeigt:
Im obigen Beispielinventar erstellen wir eine Gruppe von Servern (LinuxHint), die wir in diesem Tutorial verwalten werden. Sie können andere Gruppen wie Webserver, Database_Servers usw. haben.
So richten Sie das SSH -Schlüsselpaar ein
Ansible verwendet SSH, um sich in den angegebenen Remote -Maschinen anzumelden und die im Playbook definierten Aufgaben auszuführen. Um die Interaktion zu minimieren und einen vollständig automatisierten Workflow zu erstellen.
Schritt 1
Der erste Schritt besteht darin, ein SSH-Schlüsselpaar zu generieren, das SSH-Keygen-Tool verwendet. Verwenden Sie den Befehl als:
Dies wird Sie interaktiv auffordern, ein SSH -Schlüsselpaar zu generieren. Akzeptieren Sie zum Einfachheit halber die Standardeinstellungen und fügen Sie keine Passphrase hinzu.
Die Ausgabe dafür ist unten:
Schritt 2
Als nächstes müssen wir den SSH-Schlüssel mit dem SSH-Copy-ID-Tool in die Remote-Maschinen kopieren. Verwenden Sie den Befehl als:
Die Ausgabe ist wie unten gezeigt:
Um mehr über den Befehl SSH-Copy-ID zu erfahren, verwenden Sie Folgendes: Verwenden Sie den Befehl SSH Copy ID.
Wie man ein Ansible Playbook schreibt
Wie ich bereits erwähnt habe, verwenden Ansible Playbooks YAML, und daher müssen Sie strenge syntaktische Konventionen beobachten.
Wenn Sie nicht mit dem Schreiben von YAML -Dateien vertraut sind, berücksichtigen Sie das Tutorial in diesem Link: Lesen Sie die YAML -Dateiwerte
Lassen Sie uns ein Verzeichnis erstellen, in dem wir alle unsere Playbooks aufbewahren werden.
CD ~Nachdem wir das Verzeichnis erstellt haben .Yaml -Erweiterung.
VIM -Test.YamlFügen Sie in der YAML -Datei den folgenden Inhalt hinzu.
---Speichern Sie die Datei und führen Sie sie mit dem Befehl auf den Server aus:
Ansible-Playbook-Test.YamlDer Befehl gibt die Informationen zu den Netzwerkschnittstellen auf den Remote -Maschinen aus, wie im folgenden Bild gezeigt:
Obwohl die Ausgabe nicht hübsch ist und nicht die effizienteste Möglichkeit bietet, Netzwerkinformationen mithilfe von Ansible zu sammeln, zeigt er praktisch, wie wir Ansible verwenden können, um Befehle auf Remote -Hosts auszuführen.
So registrieren Sie Variablen in ansiblen Playbooks
Um eine Variable in einem Ansible Playbook zu erstellen, verwenden wir das Schlüsselwort Register, gefolgt vom Namen der Variablen. Sie können auch den Namen der Variablen als Schlüssel verwenden und ihren Wert mit der Dickdarmnotation festlegen.
Zum Beispiel zwei Möglichkeiten, eine Variable in Ansible zu registrieren.
Register: Variable1Mit der definierten Variablen verwenden Sie sie, indem Sie den Namen in einem Satz von zwei lockigen Klammern aufrufen, wie es folgt:
'Aufrufen der Variablen variable1 innerhalb einer String' 'Eskalation der Privilegie in Ansible
Mit Ansible können Sie auch die Berechtigungen eines Benutzers durch das werden aktualisieren. Das werden Methode ist ein boolescher Wert, der feststellt, dass die Aufgaben im Spielbuch als root ausgeführt werden sollten.
In unserem ersten Spielbuch setzen wir uns für wahr und setzen die Methode der Privilegienkalation als sudo.
Achten Sie in Playbooks
Ansible bietet uns Möglichkeiten, APT -Pakete im Debian -basierten System zu verwalten. Mit dieser Methode können Sie die Pakete mit dem Ansible Playbook aktualisieren, installieren und deinstallieren.
Betrachten Sie das Update.YAML -Datei unten gezeigt:
---Die obigen Playbooks aktualisieren den Repository -Cache. Dies entspricht einem Rohbefehl als:
Sudo apt-Get-UpdateDas kann unglaublich nützlich sein, wenn Software wie Apache, Nginx usw. installiert wird., auf einem abgelegenen Host.
Beispiel Anwendungsfall
In diesem Abschnitt wird ein Spielbuch erstellt, das einen Apache -Webserver auf dem Debian -System installiert und eine grundlegende Konfiguration durchführt.
Dieses Spielbuch zeigt verschiedene bewegende Ansible -Stücke und bietet ein gutes Beispiel dafür, wie Ansible -Playbooks funktionieren.
Erstellen Sie zunächst die YAML -Datei.
vim config_apache.YamlGeben Sie im YAML das folgende Spielbuch ein.
---Speichern Sie die Datei und führen Sie sie mit dem Befehl auf dem Remote -Server aus:
Ansible-Playbook --user = "Ubuntu" config_apache.YamlBei erfolgreicher Ausführung sehen Sie die Ausgabe wie gezeigt.
Bestätigen Sie, dass der Server mit Curl ausgeführt wird wie:
Curl 192.168.0.13Sie sollten den Standard -Apache -Quellcode (Snippet unten angezeigt) abrufen).
Und damit haben wir dieses Tutorial abgeschlossen.
Abschluss
Es ist gut zu beachten, dass die Funktionalität des Schreibens von Spielbüchern stark von den Aufgaben abhängt, die Sie ausführen müssen. Ich hoffe jedoch, dass dieses Tutorial Ihnen einige Richtlinien und Tipps gegeben hat, um eines Ihrer eigenen zu erstellen.
Glückliche Automatisierung!