So erstellen Sie ein Ansible Playbook in Ubuntu

So erstellen Sie ein Ansible Playbook in Ubuntu
Ansible ist ein leistungsstarkes Tool für Automatisierungs- und Fernverwaltung, mit dem Sie alle Ihre Remote -Maschinen verwalten können. Ansible ist plattformübergreifend und kann an den meisten Maschinen ohne Anforderungen an zusätzliche Software arbeiten. Ansible bietet auch Sicherheit, indem sie SSH und Python auf Remote -Maschinen verwenden, um bestimmte Aufgaben auszuführen.

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.

  • Ubuntu oder eine Debian -basierte Verteilung - Dies ist die Maschine, mit der wir mit SSH eine Verbindung zu den Remote -Maschinen herstellen können.
  • Eine Remote -Maschine, die mit Ansible gesteuert wird - wir empfehlen, ein Linux -System wie Debian Server zu erhalten.

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:

sudo apt-Get-Update
sudo apt-get dist-upgrade -y

Schritt 2
Verwenden Sie als nächstes die folgenden Befehle, um Ansible auf Ubuntu zu installieren.

sudo APT installieren Software-Properties-Common
sudo add-apt-repository--yes-update pPA: Ansible/Ansible
sudo apt installieren Ansible -y

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:

ssh-keygen

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:

ssh-copy-id -i ~/.ssh/id_rsa.Pub User@remote_ip

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 ~
Mkdir Anisble-Workspace
CD Ansible-Workspace

Nachdem wir das Verzeichnis erstellt haben .Yaml -Erweiterung.

VIM -Test.Yaml

Fügen Sie in der YAML -Datei den folgenden Inhalt hinzu.

---
- Hosts: Alles
wahr werden
werden_method: sudo
Aufgaben:
- Name: "Netzwerkschnittstellen anzeigen"
Befehl: ifconfig
Register: Details
- Name: 'Abgeordnete Details von Schnittstellen' '
debuggen:
msg: "Details.stdout "

Speichern Sie die Datei und führen Sie sie mit dem Befehl auf den Server aus:

Ansible-Playbook-Test.Yaml

Der 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: Variable1
Variable2: Wert

Mit 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' '
variable2

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:

---
- Hosts: Alles
Werde: Ja
werden_method: sudo
Aufgaben:
- Name: "Cache & Full System Update aktualisieren"
geeignet:
update_cache: true
cache_valid_time: 3600
force_apt_get: true

Die obigen Playbooks aktualisieren den Repository -Cache. Dies entspricht einem Rohbefehl als:

Sudo apt-Get-Update

Das 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.Yaml

Geben Sie im YAML das folgende Spielbuch ein.

---
- Hosts: Alles
wahr werden
werden_method: sudo
Aufgaben:
- Name: "Pakete aktualisieren und Upgrade"
geeignet:
update_cache: true
Upgrade: Dist
force_apt_get: true
- Name: "Apache Server installieren"
geeignet:
Name: Apache2
Staat: Neueste
- Name: "Dokument -Root erstellen"
Datei:
Pfad: "/var/www/html"
Zustand: Verzeichnis
Besitzer: "www-data"
Modus: 0755
- Name: "Apache in Firewall aktivieren"
UFW:
Regel: erlauben
Port: 80
Proto: TCP
- Name: "Apache2 -Dienst neu starten"
Service:
Name: Apache2
Zustand: Neu gestartet

Speichern Sie die Datei und führen Sie sie mit dem Befehl auf dem Remote -Server aus:

Ansible-Playbook --user = "Ubuntu" config_apache.Yaml

Bei 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.13

Sie 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!