So erstellen und laden Sie Rollen auf Ansible Galaxy herunter und verwenden sie – Teil 9
Das Schreiben von Playbooks zum Verwalten desselben Dienstes in verschiedenen Umgebungen kann jedoch recht umständlich sein, und dies führt normalerweise zu Code-Redundanz. Darüber hinaus kann eine größere Komplexität die Schwierigkeit bei der Verwaltung aller Geräte erhöhen.
Es kommen Rollen. Im AnsibleRollen werden verwendet, um Playbooks in wiederverwendbare Dateien zu zerlegen, die in mehreren anderen Fällen verwendet werden können, in denen eine ähnliche Aufgabe ausgeführt werden muss. Dadurch entfällt die Notwendigkeit, Playbooks immer wieder neu zu schreiben, und es wird viel Zeit und Energie gespart.
Rollen sind einfach Funktionen von Spielbüchern. Eine Rolle wird mit so ziemlich 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
Eine Rolle erstellen in AnsibleVerwenden Sie einfach die Syntax.
# ansible-galaxy init role_name
In Ihrem aktuellen Arbeitsverzeichnis werden mehrere Verzeichnisse und Dateien erstellt. In diesem Fall habe ich beschlossen, eine Rolle in der zu erstellen / etc / ansible / Rollen Verzeichnis.
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 können, wurden mehrere Verzeichnisse erstellt, jedoch werden nicht alle im Playbook verwendet.
Um nun Ihre neu erstellte Rolle in einem Playbook zu verwenden, definieren Sie eine Aufgabe in der main.yml Datei im Aufgabenverzeichnis Ihrer neuen Rolle.
/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 Gemeinschaft mit der Ansible Galaxy Plattform. Im Ansible GalaxySie erhalten Tausende von Rollen, die verschiedene Aufgaben ausführen, z. B. die Installation von Webservern und Datenbanken, Überwachungstools usw.
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.
So suchen Sie eine Rolle in Ansible GalaxyFühren Sie einfach den Befehl aus.
# ansible-galaxy search
Zum Beispiel, um nach einer Rolle mit dem Namen zu suchen MySQL Lauf.
# ansible-galaxy search mysql
Wie Sie sehen können, gibt es Hunderte von Rollen, die mit dem Suchbegriff übereinstimmen MySQL. Da jedoch nicht alle Rollen das ausführen, was Sie beabsichtigen, wird empfohlen, die Anweisungen sorgfältig durchzulesen.
Um weitere Informationen zu einer Rolle zu erhalten, führen Sie einfach den Befehl Ansible aus:
# ansible-galaxy info 5KYDEV0P5.skydevops-mysql
In unserem Beispiel werden wir die Rolle installieren 5KYDEV0P5.skydevops-MySQL.
# ansible-galaxy install 5KYDEV0P5.skydevops-mysql
Die Rolle wird heruntergeladen und in das Standardrollenverzeichnis unter extrahiert / etc / ansible / Rollen.
Die Rolle kann danach in einem Spielbuch 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 besuchen Ansible Galaxy Suchen Sie über Ihren Webbrowser manuell nach Rollen für die Ausführung verschiedener Aufgaben, wie im Dashboard beschrieben.
Zum Beispiel, um nach einer Überwachungsrolle zu suchen, wie z Elasticsearch, Klicken Sie auf ‘Überwachung‘Option und suchen Sie nach der Rolle wie gezeigt.
Ansible Galaxy erleichtert Benutzern die Installation der besten Rollen, indem die beliebtesten und am häufigsten heruntergeladenen Rollen aufgelistet werden. 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 aus.
# ansible-galaxy list
Fazit
Rollen Machen Sie es ganz einfach, Ansible-Playbooks wiederzuverwenden und weiterzugeben. Auf diese Weise sparen sie einem Benutzer viel Zeit beim Versuch, viel redundanten Code zu schreiben, und verbringen zu viel Zeit, die für andere Systemverwaltungsaufgaben verwendet worden wäre. Und das war’s für diesen Leitfaden.