Grundlegendes zu den Kernkomponenten von Ansible - Teil 1
Das Red Hat Certified Specialist in Ansible Automation Exam (EX407) ist ein neues Zertifizierungsprogramm von Red Hat, das Ihre Fähigkeiten zur Verwendung von Ansible zur Automatisierung der Konfiguration von Systemen und Anwendungen testet.
Die Serie trägt den Titel "The Red Hat Certified Specialist in Ansible Automation exam (EX407)" und behandelt die folgenden Prüfungsziele auf Basis von Red Hat Enterprise Linux 7.5 und Ansible 2.7, die wir in dieser Ansible-Serie behandeln werden:
Um die Gebühren anzuzeigen und sich für eine Prüfung in Ihrem Land anzumelden, besuchen Sie die Prüfungsseite von Ansible Automation.
In diesem Teil 1 der Ansible-Serie werden wir einen grundlegenden Überblick über die Kernkomponenten von Ansible geben.
Verstehen Sie die Kernkomponenten von Ansible
Ansible ist eine kostenlose Open-Source-Automatisierungsplattform von RedHat, die es Ihnen ermöglicht, mehrere Server von einem zentralen Ort aus zu verwalten und zu steuern. Es ist besonders ideal, wenn Sie mehrere und sich wiederholende Aufgaben haben, die ausgeführt werden müssen. Anstatt sich also an jedem dieser Remote-Knoten anzumelden und Ihre Aufgaben auszuführen, können Sie dies bequem von einem zentralen Ort aus tun und Ihre Server bequem verwalten.
Dies ist von Vorteil, wenn Sie die Konsistenz bei der Anwendungsbereitstellung aufrechterhalten, menschliche Fehler reduzieren und sich wiederholende und etwas banale Aufgaben automatisieren möchten.
Natürlich gibt es auch andere Alternativen zu Ansible wie Puppet, Chef und Salt. Ansible wird jedoch meist bevorzugt, da es einfach zu bedienen und leicht zu erlernen ist.
Warum ist es einfach zu lernen, fragen Sie sich vielleicht? Dies liegt daran, dass Ansible YAML (Yet Another Markup Language) in seinen Konfigurations- und Automatisierungsaufgaben verwendet, die für Menschen lesbar und recht einfach zu befolgen sind. YAML verwendet das SSH-Protokoll für die Kommunikation mit Remote-Servern, im Gegensatz zu anderen Automatisierungsplattformen, bei denen Sie einen Agenten auf Remote-Knoten installieren müssen, um mit ihnen zu kommunizieren.
Bevor wir mit Ansible beginnen, ist es wichtig, dass Sie sich mit einigen grundlegenden Terminologien vertraut machen, damit Sie sich im weiteren Verlauf nicht verlieren oder verwirren.
Inventar
Eine Bestandsliste ist eine Textdatei, die eine Liste der Server oder Knoten enthält, die Sie verwalten und konfigurieren. In der Regel werden die Server anhand ihrer Hostnamen oder IP-Adressen aufgelistet.
Eine Inventardatei kann Remote-Systeme enthalten, die durch ihre IP-Adressen definiert sind, wie gezeigt:
10.200.50.50
10.200.50.51
10.200.50.52
Alternativ können sie nach Gruppen aufgelistet werden. Im folgenden Beispiel haben wir Server, die in 2 Gruppen unterteilt sind – Webserver und Datenbanken. Auf diese Weise können sie anhand ihrer Gruppennamen und nicht ihrer IP-Adressen referenziert werden. Dies vereinfacht die Bedienungsabläufe weiter.
[webservers]
10.200.50.60
10.200.50.61
[databases]
10.200.50.70
10.200.50.71
Sie können mehrere Gruppen mit mehreren Servern haben, wenn Sie sich in einer großen Produktionsumgebung befinden.
Spielhandbuch
Ein Playbook ist eine Reihe von Konfigurationsmanagement-Skripten, die definieren, wie Aufgaben auf Remote-Hosts oder einer Gruppe von Host-Maschinen ausgeführt werden sollen. Die Skripte oder Anweisungen sind im YAML-Format geschrieben.
Sie können beispielsweise eine Playbook-Datei haben, um den Apache-Webserver unter CentOS 7 zu installieren und ihn httpd.yml zu nennen.
Um das Playbook zu erstellen, führen Sie den Befehl aus.
$ touch playbook_name.yml
Um beispielsweise ein Playbook mit dem Namen httpd zu erstellen, führen Sie den Befehl aus.
$ touch httpd.yml
Eine YAML-Datei beginnt mit 3 Bindestrichen, wie gezeigt. Fügen Sie in der Datei die folgenden Anweisungen hinzu.
---
- name: This installs and starts Apache webserver
hosts: webservers
tasks:
- name: Install Apache Webserver
yum: name=httpd state=latest
- name: check httpd status
service: name=httpd state=started
Das obige Playbook installiert den Apache-Webserver auf Remote-Systemen, die in der Inventardatei als Webserver definiert sind. Nach der Installation des Webservers prüft Ansible später, ob der Apache-Webserver gestartet ist und läuft.
Module
Module sind diskrete Codeeinheiten, die in Playbooks zum Ausführen von Befehlen auf Remote-Hosts oder -Servern verwendet werden. Auf jedes Modul folgt ein Argument.
Das grundlegende Format eines Moduls ist key:value.
- name: Install apache packages
yum: name=httpd state=present
Im obigen YAML-Codeausschnitt sind -name und yum Module.
Theaterstücke
Ein Ansible-Play ist ein Skript oder eine Anweisung, die die Aufgabe definiert, die auf einem Server ausgeführt werden soll. Eine Sammlung von Theaterstücken stellt ein Playbook dar. Mit anderen Worten, ein Playbook ist eine Sammlung von mehreren Plays, von denen jedes die Aufgabe, die auf einem Server ausgeführt werden soll, klar vorgibt. Wiedergaben liegen im YAML-Format vor.
Variablen
Wenn Sie einen Hintergrund in der Programmierung haben, haben Sie höchstwahrscheinlich Variablen verwendet. Grundsätzlich stellt eine Variable einen Wert dar. Eine Variable kann Buchstaben, Ziffern und Unterstriche enthalten, MUSS aber immer mit Buchstaben beginnen.
Variablen werden verwendet, wenn die Anweisungen von einem System zum anderen variieren. Dies gilt insbesondere bei der Konfiguration oder bei verschiedenen Diensten und Funktionen.
Es gibt 3 Haupttypen von Variablen:
- Playbook-Variablen
- Variablen für den Bestand
- Spezielle Variablen
In Ansible werden Variablen zuerst mit der Variablen k definiert, dann folgen der Variablenname und der Wert.
Die Syntax lautet wie folgt:
vars:
Var name1: ‘My first variable’
Var name2: ‘My second variable’
Betrachten Sie den folgenden Code.
- hosts: webservers
vars:
- web_directory:/var/www/html/
Im obigen Beispiel ist die Variable hier web_directory und weist ansible an, ein Verzeichnis im Pfad /var/www/html/ zu erstellen.
Tatsachen
Fakten sind Systemeigenschaften, die von Ansible erfasst werden, wenn ein Playbook auf einem Host-System ausgeführt wird. Zu den Eigenschaften gehören der Hostname, die Betriebssystemfamilie, der CPU-Typ und die CPU-Kerne, um nur einige zu nennen.
Um einen Überblick über die Anzahl der verfügbaren Fakten zu erhalten, geben Sie den Befehl ein.
$ ansible localhost -m setup
Wie Sie sehen können, wurde standardmäßig eine große Anzahl von Fakten angezeigt. Sie können die Ergebnisse mit dem Filterparameter weiter eingrenzen, wie gezeigt.
$ ansible localhost -m setup -a "filter=*ipv4"
Konfigurationsdateien
In Ansible ist eine Konfigurationsdatei eine Datei, die verschiedene Parametereinstellungen enthält, die bestimmen, wie Ansible ausgeführt wird. Die Standardkonfigurationsdatei ist die Datei ansible.cfg, die sich im Verzeichnis /etc/ansible/ befindet.
Sie können die Konfigurationsdatei anzeigen, indem Sie Folgendes ausführen:
$ cat /etc/ansible/ansible.cfg
Wie Sie sehen können, sind mehrere Parameter enthalten, wie z. B. Inventar- und Bibliotheksdateipfade, sudo-Benutzer, Plugin-Filter, Module usw. Diese Parameter können einfach angepasst werden, indem Sie sie auskommentieren und die darin enthaltenen Werte ändern.
Darüber hinaus können Sie neben Ihrer Standardkonfigurationsdatei mehrere Konfigurationsdateien mit Ansible verwenden.
Zusammenfassung
Nachdem Sie sich die Kernkomponenten in Ansible angesehen haben, hoffen wir, dass Sie in der Lage sind, sie griffbereit zu haben und sie im weiteren Verlauf auszuwählen. Begleiten Sie uns zu Ihrem nächsten Thema.


