Website-Suche

So erstellen und laden Sie Rollen auf Ansible Galaxy herunter und verwenden sie – Teil 9


In Teil 9 der Ansible-Serie erfahren Sie, wie Sie Rollen auf Ansible Galaxy erstellen, herunterladen und verwenden. Ansible ist ein einfaches, aber effektives Konfigurationsmanagement- und automatisches Bereitstellungstool, das komplexe Aufgaben nahtlos und effizient automatisiert. Mit einer einzigen Playbook-Datei können Sie Hunderte oder sogar Tausende von Servern von einem einzigen Steuerknoten aus verwalten.

Das Schreiben von Playbooks zur Verwaltung desselben Dienstes in verschiedenen Umgebungen kann jedoch recht umständlich sein und führt normalerweise zu Coderedundanz. Darüber hinaus kann eine höhere Komplexität die Verwaltung aller Geräte erschweren.

Es kommen Rollen. In Ansible werden Rollen verwendet, um Playbooks in wiederverwendbare Dateien aufzuteilen, die in mehreren anderen Instanzen verwendet werden können, wenn die Notwendigkeit besteht, eine ähnliche Aufgabe auszuführen. Dadurch entfällt die Notwendigkeit, Playbooks immer wieder neu zu schreiben, und es wird viel Zeit und Energie gespart.

Rollen sind einfach Funktionalitäten von Playbooks. Eine Rolle wird im Wesentlichen mit dem geliefert, was ein Playbook ausmachen würde: Aufgaben, Dateien, Module, Variablen und Vorlagen. Beachten Sie außerdem, dass jede Rolle auf eine bestimmte Aufgabe oder die gewünschte Ausgabe beschränkt ist.

Erstellen einer Ansible-Rolle

Um eine Rolle in Ansible zu erstellen, verwenden Sie einfach die Syntax.

ansible-galaxy init role_name 

In Ihrem aktuellen Arbeitsverzeichnis werden mehrere Verzeichnisse und Dateien erstellt. In diesem Fall habe ich mich entschieden, eine Rolle im Verzeichnis /etc/ansible/roles zu erstellen.

Erstellen wir eine Rolle namens Apache.

ansible-galaxy init apache

Verwenden Sie den Befehl „tree“, um einen Blick auf die Verzeichnisstruktur der Rolle zu werfen.

tree apache

Wie Sie sehen, wurden mehrere Verzeichnisse erstellt, allerdings werden nicht alle davon im Playbook verwendet.

Um nun Ihre neu erstellte Rolle in einem Playbook zu verwenden, definieren Sie eine Aufgabe in der Datei main.yml, die im Aufgabenverzeichnis Ihrer neuen Rolle enthalten ist.

/apache/tasks/main.yml

---

- hosts: database_servers

  tasks:

    - name: Install Apache2 on Ubuntu webserver
      apt:
         name: apache2
         state: installed

Erstellen Sie anschließend eine Playbook-Datei und rufen Sie die Rolle wie gezeigt auf.

--- 
- hosts: webservers
  roles:
   - apache

Installieren einer Rolle von Ansible Galaxy

Rollen spielen eine entscheidende Rolle beim Teilen von Code mit anderen Benutzern in der Ansible-Community über die Ansible Galaxy-Plattform. In Ansible Galaxy stehen Ihnen Tausende von Rollen zur Verfügung, die unterschiedliche Aufgaben wie die Installation von Webservern und Datenbanken, Überwachungstools usw. ausführen.

Ansible Galaxy ist eine Datenbank oder ein Repository mit Ansible-Rollen, die Sie in Ihren Playbooks nutzen und zur Optimierung Ihrer Aufgaben beitragen können.

Um eine Rolle in Ansible Galaxy zu suchen, führen Sie einfach den Befehl aus.

ansible-galaxy search <role>

Um beispielsweise nach einer Rolle mit dem Namen mysql zu suchen, führen Sie Folgendes aus.

ansible-galaxy search mysql

Wie Sie sehen, gibt es Hunderte von Rollen, die dem Suchbegriff mysql entsprechen. Da jedoch nicht alle Rollen die gewünschte Leistung erbringen, empfiehlt es sich, die Anweisungen sorgfältig durchzulesen.

Um weitere Informationen zu einer Rolle zu sammeln, führen Sie einfach den Ansible-Befehl aus:

ansible-galaxy info 5KYDEV0P5.skydevops-mysql

In unserem Beispiel werden wir die Rolle 5KYDEV0P5.skydevops-mysql installieren.

ansible-galaxy install 5KYDEV0P5.skydevops-mysql

Die Rolle wird heruntergeladen und in das Standardrollenverzeichnis unter /etc/ansible/roles extrahiert.

Die Rolle kann anschließend in einem Playbook aufgerufen werden, zum Beispiel:

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql

Jetzt können Sie das Ansible-Playbook wie gezeigt sicher ausführen.

ansible-playbook install_mysql.yml

Darüber hinaus können Sie Ansible Galaxy über Ihren Webbrowser besuchen und manuell nach Rollen suchen, um verschiedene Aufgaben auszuführen, wie im Dashboard beschrieben.

Um beispielsweise nach einer Überwachungsrolle wie elasticsearch zu suchen, klicken Sie auf die Option „Überwachung“ und suchen Sie wie gezeigt nach der Rolle.

Ansible Galaxy erleichtert Benutzern die Installation der besten Rollen, indem es die beliebtesten und am häufigsten heruntergeladenen Rollen auflistet. Um weitere Informationen zu einer bestimmten Rolle zu erhalten, klicken Sie einfach darauf.

In einem Playbook können Sie beispielsweise auch mehr als eine Rolle angeben.

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql
    • Aaronpederson.mariadb

Um die installierten Rollen aufzulisten, führen Sie einfach Folgendes aus.

ansible-galaxy list

Abschluss

Rollen machen es ganz einfach, Ansible-Playbooks wiederzuverwenden und zu teilen. Auf diese Weise ersparen sie einem Benutzer viel Zeit beim Schreiben einer Menge redundanten Codes und verschwenden zu viel Zeit, die er für andere Systemverwaltungsaufgaben aufgewendet hätte. Und das ist alles für diesen Leitfaden.