Ansible ist ein beliebtes Open-Source-Tool zur Konfigurationsverwaltung. Auf der anderen Seite ist Ansible Galaxy ein Repository von Ansible-Rollen.
Als Anfänger-Systemadministrator verfügen Sie möglicherweise nur über eine Handvoll Playbooks. Wenn sich Ihre Automatisierungsfähigkeiten verbessern und Sie damit vertrauter werden Ansible, lernen Sie alle Best Practices kennen. Wenn Sie Ihre Playbooks erweitern, werden Sie auch erkennen, wie wichtig das ist Ansible Galaxie ist.
What is Ansible Galaxy?
Ansible Galaxie ist ein webbasiertes Open-Source-Online-Repository für Ansible-Inhalte (hauptsächlich Rollen und Sammlungen). Es ist fast so, als hätte man etwas Neues geschaffen und möchte es mit anderen teilen.
Wenn Sie Probleme mit der Ansible-Automatisierung haben oder eine vorgefertigte Lösung von anderen benötigen, um Ihre Automatisierungsprojekte in Gang zu bringen, kann Ansible Galaxy helfen. Beispielsweise könnten Sie Rollen, Sammlungen, Module oder Plugins haben. Viele Community-Mitglieder haben bereits ihre Ansible-Sammlungen und -Rollen hochgeladen.

Um Aufgaben wie das Installieren von Rollen von Galaxy oder einem beliebigen Git-SCM, das Erstellen oder Entfernen von Rollen oder das Ausführen einiger Aufgaben auf der Galaxy-Site auszuführen, können wir die verwenden ansible-galaxy
Befehl. Dieser Befehl ist mit Ansible vorinstalliert, sodass Sie ihn sofort nach der Installation von Ansible verwenden können.
Das Galaxy-Projekt ist ein Open-Source-Projekt, das es uns ermöglicht, unsere internen Galaxy-Server zu hosten. Um den internen Galaxy-Server zu verwenden, müssen Sie die Standardkonfiguration in bearbeiten Ansible.cfg
Datei mit der Serveradresse des internen Galaxy-Servers, da standardmäßig die Serveradresse verwendet wird galaxy.ansible.com.
Ansible Overview
Ansible kann als Multiplikator bezeichnet werden, der Infrastrukturen jeder Größe automatisiert und skaliert. Es kann zum Verwalten von Konfigurationen, Orchestrieren von Bereitstellungen und anderen Funktionen verwendet werden. Ansible ist sehr einfach einzurichten. Ansible kann sogar von einem unerfahrenen Systemadministrator verwendet werden Infrastruktur automatisieren in nur wenigen Stunden.
Ansible automatisiert durch die Verwendung von SSH-Protokoll. Der Kontrollmechanismus verwendet eine SSH-Verbindung, um mit seinen Zielhosts (normalerweise Linux-Hosts) zu kommunizieren. Windows-Systemadministratoren können weiterhin Ansible verwenden, um ihre Windows-Umgebungen mit WinRM anstelle von SSH zu automatisieren. Auf der Steuerungsmaschine muss weiterhin Linux ausgeführt werden.
Ansible kann allgemeine Systemadministratoraufgaben wie Patchen, Aktualisieren, Gruppen- und Benutzerverwaltung, Bereitstellung und andere Verwaltungsaufgaben ausführen.
Ansible ist die am weitesten verbreitete und beliebteste Konfigurationsmanagement, Orchestrierungs- und Bereitstellungstool heute. Seine Einfachheit ist eine seiner Hauptstärken. Es ist einfach, leistungsstark und dennoch agentenlos. Dies bedeutet, dass ein neuer oder Einsteiger-Systemadministrator die Infrastruktur in nur wenigen Stunden automatisieren kann. Ansible ermöglicht schnelle Skalierung, Effizienz und Cross-Funktionalität.
Working on Ansible Galaxy
Als nächstes öffnen wir das Terminal und führen einige Befehle mit Ansible Galaxy aus. Aber vorher müssen Sie das neueste Ansible auf Ihrem System installiert haben.
Wenn Sie das Neueste haben Ansible installiert Geben Sie einfach auf Ihrem System ein ansible-galaxy
im Terminal, und Sie erhalten alle Optionen, die mit dem Galaxy verfügbar sind.
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy

Zunächst können Sie mit dem Befehl init beginnen und eine Rolle erstellen. Hier erstelle ich eine Rolle „testing“. Verwenden Sie die ls
Befehl, um zu überprüfen, ob die Rolle erfolgreich erstellt wurde. Das init
Der Befehl erstellt auch die erforderlichen Dateien im Verzeichnis der Testrolle.
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy init testing

Ansible Galaxy ist eine große und aktive Community, in der bereits viele Rollen erstellt wurden, die Sie direkt verwenden können.
Unten ist die Seite, die geöffnet wird, wenn Sie surfen 'galaxy.ansible.com', oder wir können sagen, es ist die Homepage der 'Ansible Galaxy'-Website. Wir können auf eine beliebige beliebte Kategorie auf der Homepage klicken oder auf die Schaltfläche „Suchen“ klicken, um weitere Filter für eine granulare Suche zu erhalten.

Wenn Sie beispielsweise nach einer MySQL-Serverrolle suchen, suchen Sie einfach danach und klicken Sie auf die Filterschaltfläche. Sie können sehen, dass geerlingguy maximale Downloads hat; Wir können versuchen, diese Rolle zu installieren. Klicken Sie auf geerlingguy MySQL.

Sie erhalten dann den Installationsbefehl, um diese Rolle zu installieren ansible-galaxy
.

Führen Sie den im obigen Snapshot erwähnten Befehl aus, um die MySQL-Serverrolle herunterzuladen und auf Ihrem Computer zu installieren.
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy install geerlingguy.mysql

Wenn Sie bereits wissen, welche Rolle nach einem bestimmten Autor gesucht werden soll, können Sie den Suchbefehl wie unten gezeigt verwenden.
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy search elasticsearch --author geerlingguy

Common Ansible Galaxy Commands
Der Befehl ansible-galaxy verwaltet Rollen und Sammlungen mit galaxy.ansible.com. Unten sind einige sehr hilfreich ansible-galaxy
Befehle, die jeder Systemadministrator von Zeit zu Zeit verwendet:
ansible-galaxy list:
Dieser Galaxy-Befehl zeigt eine Liste aller installierten Rollen mit ihren Versionsnummern an.ansible-galaxy remove:
Dieser Galaxy-Befehl entfernt eine installierte Rolle auf dem System.ansible-galaxy info:
Dieser Galaxy-Befehl liefert detaillierte Informationen über Ansible Galaxy.ansible-galaxy init
: Dieser Galaxy-Befehl kann verwendet werden, um eine Rollenvorlage zu erstellen, die für die Übermittlung an Ansible Galaxy geeignet ist.ansible-galaxy import
: Dieser Galaxy-Befehl erfordert eine Anmeldung, um eine Rolle von der offiziellen Galaxy-Website zu importieren.
Die obigen Befehle (init, import, install, remove) können mit dem verwendet werden ansible-galaxy
collection-Befehl zum Verwalten von Sammlungen mit Ansible Galaxy.
Lassen Sie uns nun über Rollen und Sammlungen in Ansible Galaxy sprechen.
Create Roles with Ansible Galaxy
Ansible Galaxy ist im Grunde ein großes öffentliches Repository für Ansible-Rollen. Rollen kommen mit READMEs
die Verwendung und Variablen erklären. Galaxy hat viele Rollen, die sich ständig weiterentwickeln und wachsen.
Galaxy kann Rollenquellen wie GitHub mit Git hinzufügen. Mit Ansible Galaxy können wir Ansible-Rollen mithilfe von erstellen ansible-galaxy
Befehl. Ansible-galaxy init kann verwendet werden, um eine neue Galaxienrolle zu initialisieren, oder Sie können die ansible-galaxy install <name of role>
Befehl zum Installieren der Rolle.
Bevor Sie sie in Playbooks verwenden können, muss die Rolle heruntergeladen werden. Sobald sie im Standardverzeichnis abgelegt wurden /etc/ansible/roles
, finden Sie Rollenbeispiele.
Ansible Rollenstruktur und ihre Bedeutung
Nachfolgend sind die Dateien und Verzeichnisse aufgeführt, die bei der Installation einer Rolle erstellt werden:
- README.md ist die Readme-Datei, die die Rolle beschreibt. Die Readme-Datei enthält alle Details zu den Eingabeparametern und Beispiel
yml
. - Aufgaben – Alle Aufgaben können von der Rolle bei Aufgaben eingetragen werden. Der Einstiegspunkt für die Rolle ist Main.yml. Hier beginnt die Hinrichtung. Diese Datei kann andere Dateien enthalten.
- Handler – Diese Kategorie umfasst Handler, die in dieser oder einer anderen Rolle verwendet werden können.
- defaults – Die Standardvariablen für die Rolle.
- vars – Variablen, die wichtiger sind als die Standardwerte für Rolle.
- Dateien – Diese Dateien können mit Rolle bereitgestellt werden.
- Vorlagen – Dieser Abschnitt enthält Vorlagen, die über Rolle verwendet werden können.
- meta – Metadaten können verwendet werden, um die Rollen in meta zu definieren. Diese Datei sollte auch alle Rollenabhängigkeiten enthalten.
- Tests – CI-Tests, die ausgeführt werden sollen.
- Bibliothek – Module oder Plugins in Rollen einbetten. Nicht durch den Befehl init erstellt. Sie können in diesem Ordner auch ein benutzerdefiniertes Modul in Python erstellen und es dann in Ihren Aufgaben verwenden.
Create Collections with Ansible Galaxy
Ansible Galaxy ist das beste Tool zur Verwaltung von Rollen und wird seit Jahren verwendet. Sie werden jedoch neue Funktionen oder Änderungen in Ansible Galaxy sehen. Ansible Version 2.2.8 enthält jetzt die Sammlungsfunktion.
Ansible-Inhalte können mithilfe von Sammlungen verteilt werden. Sie werden zum Packen und Verteilen von Playbooks und Rollen, Modulen sowie Plugins verwendet.
Die folgende Struktur ist die Grundlage von Sammlungen:
collection/
├── docs/
├── galaxy.yml
├── plugins/
│ ├──
modules/
│ │ └── module1.py
│ ├──
inventory/
│ └── .../
├── README.md
├── roles/
│ ├──
role1/
│ ├──
role2/
│ └── .../
├── playbooks/
│ ├──
files/
│ ├──
vars/
│ ├──
templates/
│ └── tasks/
└── tests/
Erstellen eines Sammlungsskeletts
Um eine Sammlung auf Ihrem Computer zu installieren, können Sie den Installationsbefehl ansible-galaxy collection verwenden.
Insbesondere können einige Unterbefehle auch mit Ansible Galaxy verwendet werden.
init
: Erstellt eine grundlegende Sammlungsstruktur basierend auf der Standardvorlage von Ansible'sle oder Ihrer eigenenbuild
: Erstellt ein Sammlungsartefakt, das auf Galaxy oder Ihr eigenes Repository hochgeladen werden kannpublish
: Galaxy veröffentlicht ein eingebautes Sammlungsartefaktinstall
: Installiert eine oder mehrere Sammlungen
Fazit
Ansible Galaxy ist eine großartige Möglichkeit, Ihre ständig wachsenden Rollenbücher zu organisieren und darüber nachzudenken. Ansible Galaxy hat ungefähr 39 Community-Autoren, 30 Rollen und 1656 Sammlungen, die verwendet werden können, um unser Automatisierungsprojekt schnell zu starten. Der Entwicklerleitfaden und der Leitfaden für Mitwirkende erklären, wie Sie zum vorhandenen Ansible Galaxy-Code beitragen können, der ein Open-Source-Projekt ist.
Dies könnte Sie auch interessieren Sysadmin-Aufgaben, die Sie mit Ansible automatisieren können.