Website-Suche

Kernkomponenten von Ansible verstehen – Teil 1


Die Prüfung zum Red Hat Certified Specialist in Ansible Automation (EX407) ist ein neues Zertifizierungsprogramm von Red Hat, das Ihre Fähigkeiten im Umgang mit Ansible zur Automatisierung testet die Konfiguration von Systemen und Anwendungen.

Die Reihe trägt den Titel „Die Prüfung zum Red Hat Certified Specialist in Ansible Automation (EX407)“ und deckt die folgenden Prüfungsziele basierend auf Red Hat Enterprise Linux 7.5 und ab Ansible 2.7, das 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-Reihe besprechen wir einen grundlegenden Überblick über die Kernkomponenten in Ansible.

Verstehen Sie die Kernkomponenten von Ansible

Ansible ist eine kostenlose Open-Source-Automatisierungsplattform von RedHat, mit der Sie mehrere Server von einem zentralen Standort aus verwalten und steuern können. Dies ist besonders ideal, wenn mehrere und sich wiederholende Aufgaben 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 Standort 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 alltägliche Aufgaben automatisieren möchten.

Natürlich gibt es auch andere Alternativen zu Ansible wie Puppet, Chef und Salt. Meistens wird jedoch Ansible bevorzugt, da es einfach zu verwenden 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 Automatisierungsjobs verwendet, die für Menschen lesbar und recht einfach zu befolgen sind. YAML verwendet das SSH-Protokoll zur 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 verlaufen oder verwirrt werden.

Inventar

Ein Inventar ist eine Textdatei, die eine Liste der Server oder Knoten enthält, die Sie verwalten und konfigurieren. Normalerweise werden die Server anhand ihrer Hostnamen oder IP-Adressen aufgelistet.

Eine Inventar-Datei kann Remote-Systeme enthalten, die wie folgt durch ihre IP-Adressen definiert sind:

10.200.50.50
10.200.50.51
10.200.50.52

Alternativ können sie auch nach Gruppen aufgelistet werden. Im folgenden Beispiel sind die Server zwei Gruppen zugeordnet: Webserver und Datenbanken. Auf diese Weise können sie anhand ihrer Gruppennamen und nicht anhand ihrer IP-Adressen referenziert werden. Dadurch werden die Betriebsabläufe weiter vereinfacht.

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

Wenn Sie sich in einer großen Produktionsumgebung befinden, können Sie mehrere Gruppen mit mehreren Servern haben.

Spielbuch

Ein Playbook ist eine Reihe von Konfigurationsverwaltungsskripten, 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 sie 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 wie gezeigt mit 3 Bindestrichen. Fügen Sie 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 Grundformat eines Moduls ist Schlüssel: Wert.

- name: Install apache packages 
    yum:   name=httpd  state=present

Im obigen YAML-Codeausschnitt sind -name und yum Module.

Theaterstücke

Ein ansibles Play ist ein Skript oder eine Anweisung, die die auf einem Server auszuführende Aufgabe definiert. Eine Sammlung von Theaterstücken bildet ein Spielbuch. Mit anderen Worten: Ein Playbook ist eine Sammlung mehrerer Plays, die jeweils eindeutig die auf einem Server auszuführende Aufgabe festlegen. Stücke liegen im YAML-Format vor.

Variablen

Wenn Sie über Programmierkenntnisse verfügen, haben Sie höchstwahrscheinlich bereits Variablen verwendet. Grundsätzlich stellt eine Variable einen Wert dar. Eine Variable kann Buchstaben, Ziffern und Unterstriche enthalten, MUSS jedoch immer mit Buchstaben beginnen.

Variablen werden verwendet, wenn Anweisungen von einem System zum anderen variieren. Dies gilt insbesondere bei der Konfiguration verschiedener Dienste und Funktionen.

Es gibt drei Haupttypen von Variablen:

  • Playbook-Variablen
  • Inventarvariablen
  • Spezielle Variablen

In Ansible werden Variablen zunächst mit vars k definiert, gefolgt vom Variablennamen und dem Wert.

Die Syntax ist 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 lautet die Variable hier web_directory und weist ansible an, ein Verzeichnis im Pfad /var/www/html/ zu erstellen.

Fakten

Fakten sind Systemeigenschaften, die von Ansible erfasst werden, wenn es ein Playbook auf einem Hostsystem ausführt. Zu den Eigenschaften gehören unter anderem Hostname, Betriebssystemfamilie, CPU-Typ und CPU-Kerne.

Um einen Einblick in die Anzahl der verfügbaren Fakten zu erhalten, geben Sie den Befehl ein.

ansible localhost -m setup

Wie Sie sehen, werden standardmäßig zahlreiche Fakten angezeigt. Sie können die Ergebnisse mithilfe des Filterparameters wie gezeigt weiter eingrenzen.

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 im Verzeichnis /etc/ansible/.

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. Dateipfade für Inventar und Bibliothek, Sudo-Benutzer, Plugin-Filter, Module usw. Diese Parameter können einfach durch Kommentieren angepasst werden aus und ändern Sie die darin enthaltenen Werte.

Darüber hinaus können Sie neben Ihrer Standardkonfigurationsdatei auch mehrere Konfigurationsdateien mit Ansible verwenden.

Zusammenfassung

Nachdem wir uns die Kernkomponenten von Ansible angesehen haben, hoffen wir, dass Sie in der Lage sind, diese immer zur Hand zu haben und sie im weiteren Verlauf auszuwählen. Begleiten Sie uns bei Ihrem nächsten Thema.