Alles, was Sie wissen müssen

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 mit Ansible vertrauter werden, lernen Sie alle Best Practices kennen. Wenn Sie Ihre Playbooks erweitern, werden Sie auch feststellen, wie wichtig Ansible Galaxy ist.

Was ist Ansible Galaxy?

Ansible Galaxy 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 den Befehl „ansible-galaxy“ verwenden. 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 der Datei Ansible.cfg mit der Serveradresse des internen Galaxy-Servers bearbeiten, da standardmäßig die Serveradresse galaxy.ansible.com verwendet wird.

Ansible-Übersicht

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 selbst von unerfahrenen Systemadministratoren verwendet werden, um die Infrastruktur in nur wenigen Stunden zu automatisieren.

Ansible automatisiert mithilfe des SSH-Protokolls. 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.

  13 Babysitter-Apps für 2022

Ansible ist heute das am weitesten verbreitete und beliebteste Konfigurationsmanagement-, Orchestrierungs- und Bereitstellungstool. 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.

Arbeiten an 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 Ansible auf Ihrem System installiert haben, geben Sie einfach ansible-galaxy im Terminal ein, und Sie erhalten alle Optionen, die mit dem Galaxy verfügbar sind.

[email protected]:~$ ansible-galaxy

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

[email protected]:~$ 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 sich öffnet, wenn Sie „galaxy.ansible.com“ durchsuchen, oder wir können sagen, dass es die Homepage der „Ansible Galaxy“-Website ist. 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 mit ansible-galaxy zu installieren.

Führen Sie den im obigen Snapshot erwähnten Befehl aus, um die MySQL-Serverrolle herunterzuladen und auf Ihrem Computer zu installieren.

[email protected]:~$ 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.

[email protected]:~$ ansible-galaxy search elasticsearch --author geerlingguy

Allgemeine Ansible Galaxy-Befehle

Der Befehl ansible-galaxy verwaltet Rollen und Sammlungen mit galaxy.ansible.com. Unten sind einige sehr hilfreiche 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.
  7 hochbezahlte Jobrollen in der IT

Die obigen Befehle (init, import, install, remove) können mit dem Befehl ansible-galaxy collection verwendet werden, um Sammlungen mit Ansible Galaxy zu verwalten.

Lassen Sie uns nun über Rollen und Sammlungen in Ansible Galaxy sprechen.

Erstellen Sie Rollen mit Ansible Galaxy

Ansible Galaxy ist im Grunde ein großes öffentliches Repository für Ansible-Rollen. Rollen werden mit READMEs geliefert, die die Verwendung und Variablen erläutern. Galaxy hat viele Rollen, die sich ständig weiterentwickeln und wachsen.

Galaxy kann Rollenquellen wie GitHub mit Git hinzufügen. Ansible Galaxy ermöglicht es uns, Ansible-Rollen mit dem Befehl ansible-galaxy zu erstellen. Ansible-galaxy init kann verwendet werden, um eine neue Galaxy-Rolle zu initialisieren, oder Sie können den Befehl ansible-galaxy install verwenden, um die Rolle zu installieren.

Bevor Sie sie in Playbooks verwenden können, muss die Rolle heruntergeladen werden. Sobald sie im Standardverzeichnis /etc/ansible/roles abgelegt wurden, 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.
  Welche sollten Sie kaufen?

Erstellen Sie Sammlungen mit 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 eigenen
  • build: Erstellt ein Sammlungsartefakt, das auf Galaxy oder Ihr eigenes Repository hochgeladen werden kann
  • Veröffentlichen: Galaxy veröffentlicht ein integriertes Sammlungsartefakt
  • install: 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.000 Community-Autoren, 30.000 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.

Sie könnten auch an Sysadmin-Aufgaben interessiert sein, die Sie mit Ansible automatisieren können.