GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Eine kurze Einführung in Ansible-Rollen für die Linux-Systemverwaltung

Ansible ist eine Open-Source-Automatisierungsplattform, die Konfigurationsverwaltung, Anwendungsbereitstellung und Infrastrukturorchestrierung umfasst. Es ist ein beliebtes Automatisierungstool für DevOps-Ingenieure und Systemadministratoren. Systemadministratoren sind aufgrund langer Arbeitszeiten und der Ausführung sich wiederholender Aufgaben auf vielen Systemen oft mit einem Karriere-Burnout konfrontiert, aber Ansible hilft, diese Aufgaben einfacher zu erledigen. Aufgaben wie Nutzererstellung, Dienstverwaltung und Softwareinstallationen können mit Ansible ausgeführt werden. Ansible ist eher prozedurbasiert als deklarativ, was bedeutet, dass Sie alle erforderlichen Schritte in eine YAML-Datei schreiben und sie dann nacheinander auf allen Zielsystemen ausführen.

[Vielleicht möchten Sie auch lesen: Verwenden eines Ansible-Playbooks zum Verwalten von Workstation- und Server-Updates]

Knoten

In der Ansible-Architektur haben Sie einen Controller-Knoten und verwaltete Knoten. Ansible wird nur auf dem Controller-Knoten installiert. Es ist ein Tool ohne Agent und muss nicht auf den verwalteten Knoten installiert werden. Controller und verwaltete Knoten werden über das SSH-Protokoll verbunden. Alle Aufgaben werden mit der Sprache YAML in ein „Playbook“ geschrieben. Jedes Playbook kann mehrere Plays, enthalten die Aufgaben enthalten , und Aufgaben enthalten Module . Module sind wiederverwendbare eigenständige Skripte, die einige Aspekte des Verhaltens eines Systems verwalten. Ansible-Module werden auch als Task-Plugins oder Bibliotheks-Plugins bezeichnet.

Rollen

Playbooks für komplexe Aufgaben können langwierig und daher schwer zu lesen und zu verstehen sein. Die Lösung für dieses Problem sind Ansible roles . Mithilfe von Rollen können Sie lange Playbooks in mehrere Dateien aufteilen, wodurch jedes Playbook einfach zu lesen und zu verstehen ist. Rollen sind eine Sammlung von Vorlagen, Dateien, Variablen, Modulen und Aufgaben. Der Hauptzweck hinter Rollen ist die Wiederverwendung von Ansible-Code. DevOps-Ingenieure und Systemadministratoren sollten immer versuchen, ihren Code wiederzuverwenden. Eine Ansible-Rolle kann mehrere Playbooks enthalten. Es kann Code, der von jedem geschrieben wurde, problemlos wiederverwenden, wenn die Rolle für einen bestimmten Fall geeignet ist. Sie könnten beispielsweise ein Playbook für Apache-Hosting schreiben und diesen Code dann wiederverwenden, indem Sie den Inhalt von index.html ändern um Optionen für andere Anwendungen oder Dienste zu ändern.

Im Folgenden finden Sie eine Übersicht über die Ansible-Rollenstruktur. Es besteht aus vielen Unterverzeichnissen, wie zum Beispiel:

|-- README.md
|-- defaults
|-------main.yml
|-- files
|-- handlers
|-------main.yml
|-- meta
|-------main.yml
|-- tasks
|-------main.yml
|-- templates
|-- tests
|-------inventory
|-- vars
|-------main.yml

Anfänglich werden alle Dateien leer erstellt, indem der ansible-galaxy verwendet wird Befehl. Je nach Aufgabe können Sie also diese Verzeichnisse verwenden. Beispielsweise die vars Verzeichnis speichert Variablen. In den tasks Verzeichnis haben Sie main.yml , das ist das Hauptplaybook. Die templates Verzeichnis dient zum Speichern von Jinja-Vorlagen. Die handlers Verzeichnis dient zum Speichern von Handlern.

Vorteile von Ansible-Rollen:

  • Wiederverwendbarkeit von Inhalten zulassen
  • Machen Sie große Projekte überschaubar

Ansible-Rollen sind strukturierte Verzeichnisse, die Unterverzeichnisse enthalten.

Aber wussten Sie, dass Red Hat Enterprise Linux auch einige Ansible-Systemrollen bereitstellt, um Betriebssystemaufgaben zu verwalten?

Systemrollen

Die rhel-system-roles Paket ist im Kanal Extras (EPEL) verfügbar. Die rhel-system-roles -Paket wird verwendet, um RHEL-Hosts zu konfigurieren. Es gibt sieben standardmäßige rhel-system-roles verfügbar:

  • rhel-system-roles.kdump - Diese Rolle konfiguriert den kdump-Absturzwiederherstellungsdienst. Kdump ist eine Funktion des Linux-Kernels und hilfreich bei der Analyse der Ursache eines Kernel-Absturzes.
  • rhel-system-roles.network - Diese Rolle ist Netzwerkschnittstellen gewidmet. Dies hilft bei der Konfiguration von Netzwerkschnittstellen in Linux-Systemen.
  • rhel-system-roles.selinux – Diese Rolle verwaltet SELinux. Dies hilft bei der Konfiguration des SELinux-Modus, der Dateien, des Port-Kontexts usw.
  • rhel-system-roles.timesync – Diese Rolle wird verwendet, um NTP oder PTP auf Ihrem Linux-System zu konfigurieren.
  • rhel-system-roles.postfix – Diese Rolle dient der Verwaltung des Postfix Mail Transfer Agent.
  • rhel-system-roles.firewall – Wie der Name schon sagt, dreht sich bei dieser Rolle alles um die Verwaltung der Firewall-Konfiguration des Hostsystems.
  • rhel-system-roles.tuned - Tuned ist ein Systemoptimierungsdienst in Linux zur Überwachung angeschlossener Geräte. Diese Rolle besteht also darin, den optimierten Dienst für die Systemleistung zu konfigurieren.

Die rhel-system-roles -Paket ist von Open-Source-Linux-Systemrollen abgeleitet. Diese Linux-Systemrolle ist auf Ansible Galaxy verfügbar. Die rhel-system-roles wird von Red Hat unterstützt, Sie können sich das also wie rhel-system-roles vorstellen sind den Linux-Systemrollen nachgeordnet. So installieren Sie rhel-system-roles Verwenden Sie auf Ihrem Computer:

$ sudo yum -y install rhel-system-roles
or
$ sudo dnf -y install rhel-system-roles

Diese Rollen befinden sich in /usr/share/ansible/roles/ Verzeichnis.

Dies ist der Standardpfad. Wenn Sie also Playbooks verwenden, um auf diese Rollen zu verweisen, müssen Sie den absoluten Pfad nicht explizit angeben. Sie können sich auch auf die Dokumentation zur Verwendung von Ansible-Rollen beziehen. Der Pfad für die Dokumentation lautet /usr/share/doc/rhel-system-roles

Das Dokumentationsverzeichnis für jede Rolle enthält detaillierte Informationen zu dieser Rolle. Beispielsweise ist die Datei README.md ein Beispiel für diese Rolle usw. Die Dokumentation ist selbsterklärend.

Das Folgende ist ein Beispiel für eine Rolle.

Beispiel

Wenn Sie den SELinux-Modus des lokalen Hostcomputers oder eines beliebigen Hostcomputers ändern möchten, verwenden Sie die Systemrollen. Verwenden Sie für diese Aufgabe rhel-system-roles.selinux

Für diese Aufgabe sieht das Ansible-Playbook folgendermaßen aus:

---

- name: a playbook for SELinux mode
 hosts: localhost
 roles:

- rhel-system-roles.selinux
 vars:

- selinux_state: disabled

Nachdem Sie das Playbook ausgeführt haben, können Sie überprüfen, ob sich der SELinux-Modus geändert hat oder nicht.

[ Suchen Sie nach mehr Informationen zur Systemautomatisierung? Beginnen Sie mit The Automated Enterprise, einem kostenlosen Buch von Red Hat. ] 

Abschluss

Diese kurze Einführung in Ansible-Rollen sollte ausreichen, um Ihnen den Einstieg in die Verwendung in Ihren Playbooks zu erleichtern. Denken Sie daran, dass Ansible dazu gedacht ist, diese sich wiederholenden Aufgaben zu rationalisieren und zu vereinfachen und Ihnen das Leben als Systemadministrator zu erleichtern.


Linux
  1. 10 Ansible-Module für die Linux-Systemautomatisierung

  2. Was ist Linux? Ein Leitfaden für nicht-technische Benutzer

  3. Entmystifizierung von Ansible für Linux-Systemadministratoren

  4. 8 Tipps für eine zuverlässige Linux-Systemautomatisierung

  5. RHCE Ansible Series #10:RHEL-Systemrollen

Die Einführung eines Linux-Systemadministrators in cgroups

Kurzanleitung zu Ansible für Linux-Systemadministratoren

Meine Reise in die Linux-Systemadministration

Eine kurze Einführung in Ansible Vault

Verwaltung des Netzwerkdateisystems (NFS) unter Linux

Webmin – Ein webbasiertes Systemverwaltungstool für Linux