Verwendung statischer und dynamischer Bestände in Ansible – Teil 4

In diesem Teil 4 In Ansible Series wird erläutert, wie statisches und dynamisches Inventar zum Definieren von Hostgruppen in Ansible verwendet wird.

In einem (n Ansible, verwaltete Hosts oder Server, die von der gesteuert werden Ansible Steuerknoten sind definiert in a Host-Inventardatei Eine Host-Inventardatei ist eine Textdatei, die aus besteht Hostnamen oder IP-Adressen von verwalteten Hosts oder Remote-Servern.

Verwaltete Hosts kann entweder als einzelne Einträge aufgeführt oder unter einem Gruppennamen kategorisiert werden, wie wir später sehen werden. In Ansible gibt es zwei Arten von Inventardateien: Statisch und Dynamisch.

Schauen wir uns diese an und sehen, wie wir sie verwalten können. Inzwischen gehen wir davon aus, dass Sie Ansible bereits auf Ihrem Control-Knoten installiert und die kennwortlose SSH-Verbindung zu Ihren verwalteten Hosts konfiguriert haben.

Statische Host-Inventardatei

Im AnsibleEine statische Inventardatei ist eine Nur-Text-Datei, die eine Liste verwalteter Hosts enthält, die unter einer Hostgruppe unter Verwendung von Hostnamen oder IP-Adressen deklariert wurden.


Ein Hostgruppenname ist in eckigen Klammern eingeschlossen, d. H. [group name]. Die verwalteten Hosteinträge werden später unter dem Gruppennamen in einer eigenen Zeile aufgeführt. Wie bereits erwähnt, werden die Hosts entweder mit Hostnamen oder IP-Adressen aufgelistet.

[group name]

Host A ip_address 
Host B ip_address
Host c ip_address

Zur Veranschaulichung erstellen wir eine statische Inventardatei.

# mkdir test_lab && cd test_lab
# vim hosts
Statische Inventardatei
[webservers]
173.82.115.165

[database_servers]
173.82.220.239

[datacenter:children]
webservers
database_servers

Speichern Sie die Datei und beenden Sie sie.

Wie Sie in der obigen Inventardatei sehen können, haben wir zwei Hostgruppen erstellt: Webserver und Datenbankserver. Außerdem haben wir eine zusätzliche Gruppe namens erstellt Rechenzentrum Dies schließt eine Gruppe von Hostgruppen ein, die mit gekennzeichnet sind ': children' Suffix wie oben gezeigt.

Mit Ansible können auch Gruppen von Hosts unter einem Gruppennamen platziert werden. In der obigen Inventardatei ist die Webserver und Datenbankserver Gruppen wurden unter dem platziert Rechenzentrum.

HINWEIS: Es ist nicht zwingend erforderlich, verwaltete Hosts in einer Hostgruppe zu platzieren. Sie können sie beispielsweise einfach mit ihren Hostnamen oder IP-Adressen auflisten.

173.82.202.239
172.82.115.165
load_balancer.pnl.com

Verwenden wir nun einige Ansible-Befehle zum Verweisen auf die Host-Inventardatei. Die grundlegende Syntax für die Bestandsverwaltung ist wie folgt.

$ ansible {host-pattern} -i /path/of/inventory/file --list-hosts

Beispielsweise,

$ ansible all -i /root/test_labs/hosts --list-hosts
Liste Ansible Hosts
Liste Ansible Hosts

Alternativ können Sie das Platzhalterzeichen verwenden * ersetzen ‘all’ Streit.

$ ansible * -i /root/test_labs/hosts --list-hosts
Listen Sie Ansible Hosts mit Platzhaltern auf
Listen Sie Ansible Hosts mit Platzhaltern auf

Um Hosts in einer Gruppe aufzulisten, geben Sie die Hostgruppe anstelle des Hostmusters an.

$ ansible webservers -i /root/test_labs/hosts --list-hosts
Listen Sie Ansible Hosts in der Gruppe auf
Listen Sie Ansible Hosts in der Gruppe auf

Dynamische Host-Inventardatei

In einer Konfiguration – insbesondere einem Cloud-Setup wie AWS Wenn sich die Inventardatei beim Hinzufügen oder Außerbetriebnehmen von Servern ständig ändert, wird es zu einer echten Herausforderung, die in der Inventardatei definierten Hosts im Auge zu behalten. Es wird unpraktisch, zur Hostdatei zurückzukehren und die Liste der Hosts mit ihren IP-Adressen zu aktualisieren.

Und hier ist ein dynamisches Inventar kommt zum spielen. Was ist ein dynamisches Inventar? Ein dynamisches Inventar ist ein Skript, das in Python, PHP oder einer anderen Programmiersprache geschrieben ist. Dies ist praktisch in Cloud-Umgebungen wie AWS, in denen sich die IP-Adressen ändern, sobald ein virtueller Server gestoppt und erneut gestartet wird.

Ansible hat bereits Inventarskripte für öffentliche Cloud-Plattformen wie Google Compute Engine, Amazon EC2-Instanz, OpenStack, RackSpace und Cobbler entwickelt.

Was sind die Vorteile eines dynamischen Inventars gegenüber einem statischen Inventar?
  • Dynamische Inventare reduzieren perfekt menschliche Fehler, da Informationen mithilfe von Skripten gesammelt werden.
  • Bei der Verwaltung der Lagerbestände ist nur ein minimaler Aufwand erforderlich.

Sie können Ihr eigenes dynamisches Inventar in einer Programmiersprache Ihrer Wahl erstellen. Das Inventar sollte ein Format in JSON zurückgeben, wenn die entsprechenden Optionen übergeben werden.

Verwenden Sie ein vorhandenes dynamisches Inventarskript

Ein Skript, das zum Erstellen eines dynamischen Inventars verwendet wird, muss ausführbar gemacht werden, damit Ansible es verwenden kann.

Um Informationen zu den Hosts in einem dynamischen Inventarskript abzurufen, führen Sie sie einfach aus.

# ./script --list 

Wie bereits erwähnt, sollte die Ausgabe in JSON im folgenden Format erfolgen.

Ein Wörterbuch, das aus Gruppen besteht (dh Webserver, Datenbankserver).
  • Eine Liste der verwalteten Hosts pro Gruppe
  • Ein Wörterbuch der Variablen
Meta-Wörterbuch
  • Hosts und Hostvars
Beispielausgabe
{
  "webservers": {
    "hosts": [
      "webserver1.example.com",
      "webserver2.example.com"
    ],
    "vars": {}
  },
  "database_servers": {
    "hosts": [
      "mysql_db1",
      "mysql_db2"
    ],
    "vars": {}
  },
  "_meta": {
    "hostvars": {
      "mysql_db2": {},
      "webserver2.example.com": {},
      "webserver1.example.com": {}, 
      "mysql_db1": {}
    }
  }
}
Fazit

In diesem Artikel haben wir gezeigt, wie sowohl statische als auch dynamische Inventare erstellt werden. Zusammenfassend ist eine statische Inventardatei eine Nur-Text-Datei, die eine Liste verwalteter Hosts oder Remote-Knoten enthält, deren Nummern und IP-Adressen ziemlich konstant bleiben.

Andererseits ändert sich eine dynamische Hostdatei ständig, wenn Sie neue Hosts hinzufügen oder alte außer Betrieb nehmen. Die IP-Adressen von Hosts sind auch dynamisch, wenn Sie neue Hostsysteme stoppen und starten. Wir hoffen, dass Sie dieses Tutorial informativ fanden.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *