Ansible Advanced Host List Inventory

Ansible Advanced Host List Inventory



Unter Verwendung einer der neuesten Verwaltungstechniken, „Ansible“, stellen wir vor, wie wir jeden überwachten Host auf dem Gerät auflisten. In Ansible verwenden wir das Plugin „inventory“, um alle Hosts im Netzwerk aufzulisten.

Es ist wichtig, eine Liste aller Ihrer Hostmaschinen in Ansible zu haben. Die Organisation einer Inventardatei ist genauso wichtig wie die Pflege der Playbooks oder Aufgaben, da Sie sich ständig in einem Zustand der Unsicherheit befinden und sich mit mehreren Bedenken fragen, ob Ihre Inventardatei schlecht verwaltet wird. Darüber hinaus minimiert die Definition der erforderlichen Variablen in der Inventardatei den Inhalt der Aufgabe in Playbooks und beschleunigt die Interpretationen. Es gibt eine Gruppe von Variablen, die sowohl in Ihren Playbooks als auch in Ansible-Inventardateien deklariert werden können, die für die Verbindung und Konfiguration des Konnektivitätsverhaltens mit dem Hostcomputer verantwortlich sind.







Voraussetzungen:

Im Folgenden sind die Anforderungen aufgeführt, bevor der Hostlisten-Inventarisierungsbefehl in Ansible implementiert wird:



  • Um mit der Implementierung zu beginnen, benötigen wir zunächst eine Software, die für die Ansible-Konfiguration verwendet wird und die auf dem Servergerät mit der neuesten Version installiert ist. Ansible muss so konfiguriert werden, dass wir die All-Host-Maschine in unserem Netzwerk problemlos auflisten können.
  • Um Konfigurationsaufgaben in Ansible auszuführen, benötigen wir einen Hauptkonfigurationsmanager. In diesem Tutorial verwenden wir den Controller-Server als Hauptcontroller.
  • Um Änderungen zu implementieren, müssen wir die Hostserver im Hostlisteninventar-Tutorial ansprechen. Hier haben wir zwei Ziel-Remote-Hosts.

Beispiel: Hostlisteninventar auf der Maschine

Hier ist das Beispiel, das wir im Ansible-Tool implementieren, um das Inventar der Hostliste zu überprüfen oder zu definieren. Dazu werden wir dieses Beispiel in verschiedenen Schritten durchführen, damit wir die Funktionsweise und Implementierung dieses Tutorials leicht verstehen können. Im Folgenden sind die Schritte aufgeführt:



Schritt 1: Überprüfen Sie das Standard-Hostlisteninventar auf dem Ziel-Remote-Hostgerät





Zunächst prüfen wir, wie viele Hosts sich im Inventar des Tools Ansible befinden. Dazu verwenden wir die „ansible“-Anweisung mit „—list-hosts“, damit wir die standardmäßig behandelten Knoten im Inventar anzeigen können.

[ Wurzel @ Meister ansibel ] # ansible all --list-hosts



Hier ist die Ausgabe nach dem Schreiben des vorherigen Befehls:

Das Ansible-Terminal zeigt „0 Hosts“ an, wie Sie in der bereitgestellten Antwort sehen können, da wir das Inventar nicht deklariert haben. Wir generieren das Inventar, um das Inventar des Hosts im Terminal aufzulisten, bevor wir uns damit befassen.

Standardbestand:

Wenn wir Ansible in der Software installieren, erstellt Ansible eine Inventardatei, die gefunden wird, indem die folgende Anweisung in das Terminal geschrieben wird:

[ Wurzel @ Meister ansibel ] # sudo nano /etc/ansible/hosts

Das Ergebnis wird generiert, wenn wir die vorherige Anweisung schreiben. Dann werden Sie aufgefordert, das Passwort einzugeben:

In diesem Snapshot stellt die standardmäßige Ansible-Hosts-Datei die Informationen zu den nicht gruppierten Hosts und Hosts der Webserver-Gruppe bereit. Diese Hosts enthalten die URLs und verschiedene IP-Adressen.

Schritt 2: Definieren Sie das benutzerdefinierte Inventar in Ansible

In Ansible können wir unser Inventar auch definieren, indem wir mehrere Anweisungen in das Ansible-Terminal schreiben. Das Definieren des Inventars beim Ausführen der Anweisungen und Playbooks ist eine kluge Entscheidung, die Konflikte zwischen den Hosts und Fehler beim Herstellen einer Verbindung mit den Hosts verhindert.

Um das Inventar selbst zu definieren, schreiben wir zunächst die folgende Anweisung, damit wir das Inventar in Ansible erstellen und die Hosts darin auflisten können, damit wir die Verbindung zwischen dem Ansible-Controller und den Ziel-Remote-Hosts herstellen können.

[ Wurzel @ Meister ansibel ] # nano-hosts.yml

Nach dem Schreiben der vorherigen Anweisung wird das Inventar erstellt und in einem neuen Ansible-Terminal mit dem Titel „hosts.yml“ gestartet. Als Nächstes listen wir die Zielhosts nacheinander im Inventar auf. Der allererste Host, mit dem wir uns verbinden, ist ein Linux-Host. Wir geben die IP-Adresse des Linux-Hosts, den Ansible-Benutzer, das Ansible-Passwort, die Art der Verbindung und die Ansible-Portnummer an. Das Gleiche machen wir auch mit dem zweiten Zielhost. Der zweite Host, den wir verwenden, ist der Ansible-Host. Alle von uns aufgelisteten Hosts befinden sich unter dem Ansible-Parameter im Inventar.

Ansehnlich:
Gastgeber:
Linux_Host:
ansible_host: 192.168.3.229
ansible_user: root
ansible_password: tpstps_22
ansible_connection: sch
ansible_port: 22

Ansible_Host:
ansible_host: 192.168.7.10
ansible_user: iris
ansible_password: TpsTps_1
ansible_connection: sch
ansible_port: 22

Nachdem wir die Inventardatei erstellt und die darin enthaltenen Hosts bereitgestellt haben, beenden wir nun die Inventardatei und kehren zum Hauptterminal von Ansible zurück.

Schritt 3: Erstellen Sie das Playbook in Ansible

Als nächstes erstellen wir das Playbook im Ansible-Tool, damit wir die Aufgaben definieren. Dazu schreiben wir den folgenden Befehl in das Ansible-Hauptterminal:

[ Wurzel @ Meister ansibel ] # nano ansible_advanced_inventory.yml

Jetzt wird das Playbook in einem neuen Terminal gestartet. Zuerst schreiben wir den Titel des Playbooks. In der nächsten Zeile geben wir den Zielhost an. Wir verwenden die Option zum Sammeln von Fakten, mit der alle Informationen von Hosts abgerufen werden. Aber hier übergeben wir „nein“, was bedeutet, dass wir nicht alle Daten der Hosts erhalten möchten.

Als Nächstes listen wir die Aufgaben im Playbook auf. Die erste Aufgabe dient dazu, den Zielhost mit dem Hostnamen anzuzeigen. In der nächsten Aufgabe drucken wir die Host-Ergebnisse aus.

- Name: Ansible Advanced Host Inventory
Gastgeber: Ansible [ 0 ]
collect_facts: nein
Aufgaben:

- Name: Erhalten Hostname des verwalteten Knotens
Hülse: 'Hostname'
registrieren: Ergebnis

- Name: Drucken Hostname
debuggen:
Nachricht: '{{result.stdout}}'

Jetzt wollen wir das Playbook zusammen mit der Inventardatei ausführen. Also beenden wir zuerst das Playbook. Das Folgende ist die Anweisung, die wir verwenden, um den Befehl auszuführen:

[ Wurzel @ Meister ansibel ] # ansible-playbook ansible_advanced_inventory.yml –i host.yml

Das Folgende ist die Ausgabeanzeige, die anzeigt, dass die Verbindung erfolgreich ist. Da wir das Ansible[0] im Playbook übergeben haben, wird der erste Host in der Ausgabe angezeigt:

Abschluss

Wir hatten während dieses Tutorials eine ausführliche Diskussion im Ansible-Inventar. Wir haben gelernt, wie man das Inventar in Ansible aufbaut und es dann mit den Ziel-Remote-Hosts verbindet. Wir haben auch ein Beispiel implementiert, damit wir die Konzepte von Ansible Inventory leicht verstehen können.