alexisfacques.ansible_module_dig
ansible-module-dig
ansible-module-dig
ist ein benutzerdefiniertes Ansible-Modul, mit dem Sie DNS-Abfragen von entfernten Ansible-Hosts ausführen können. Es gibt eine Liste der aufgelösten IP(v4)-Adressen pro Name zurück. Das dig
-Modul kann auch so konfiguriert werden, dass die /etc/hosts
-Datei der Hosts vor einer Abfrageoperation analysiert wird.
Dieses Modul kann somit verwendet werden, um:
- einen oder mehrere Hostnamen aufzulösen;
- festzustellen, ob ein oder mehrere Hostnamen aufgelöst werden können (das Modul schlägt fehl, wenn ein Hostname nicht auf mindestens eine Adresse aufgelöst werden kann).
dig
-Modul vs. Ansible lookup('dig', ... )
Stellen Sie sicher, dass Sie wissen, was Sie tun, bevor Sie dieses Modul verwenden! Der offizielle Weg, um DNS-Abfragen in Ansible auszuführen, ist die Verwendung der dig
-Lookup.
Ein Hauptproblem bei der Verwendung von Lookup-Filtern, wie bei allen Vorlagen, ist, dass sie auf der Ansible-Steuerungsmaschine ausgewertet werden und nicht auf dem Zielhost. Dies könnte unerwartete Nebeneffekte verursachen, wenn Sie Ihre Ansible-Spiele in komplexen Netzwerkumgebungen oder Bereitstellungsszenarien ausführen, in denen Ihre Steuerungsmaschine alle Hosts Ihres Clusters auflösen kann, die Hosts jedoch nicht (z. B. wenn Sie Ihre Konfiguration über ein externes Managementnetzwerk oder in Offline- oder hoch gesicherten Netzwerkumgebungen ausführen).
Dieses Ansible dig
-Modul schließt diese Lücke, indem es Abfragen direkt von den Remote-Hosts ausführt.
Erste Schritte
Anforderungen
Die folgenden Anforderungen sind auf dem Host erforderlich, der dieses Modul ausführt.
dnspython
für Python.
Installation
Der "Ansible-Rollen" Weg
- Klonen Sie dieses Repository in Ihren Ansible
role_path
oder installieren Sie es überansible-galaxy
;ansible-galaxy install alexisfacques.ansible_module_dig
- Importieren Sie die Rolle in Ihren Playbooks, bevor Sie eine Rolle oder Aufgabe ausführen, die das
dig
-Modul benötigt:- hosts: all roles: - alexisfacques.ansible_module_dig tasks: - name: Sicherstellen, dass google.com aufgelöst werden kann dig: qtype: A name: google.com register: dig_result
Der "Ansible-Bibliothek" Weg
Alternativ, wenn das Importieren einer Rolle zu umständlich ist, können Sie dieses Modul im Verzeichnis library
speichern, das in Ihrer ansible.cfg
-Datei definiert ist.
(Standardmäßig ist es ein Unterverzeichnis namens library
im Verzeichnis, das Ihre Playbooks enthält):
[defaults]
library = /path/to/your/library
Verwendung
Parameter
Parameter | Auswahlen/Voreinstellungen | Kommentare |
---|---|---|
qtype |
Voreinstellung: A |
Gibt an, welche Art von Abfrage erforderlich ist: ANY, A, MX, SIG... Der Typ kann jede gültige Abfrageart sein. |
name - string | liste / erforderlich |
Der Name/die Namen der Ressourcen, die abgefragt werden sollen. | |
nameserver - string | liste |
Die Namen oder IPv4-Adressen der zu verwendenden Nameserver. | |
with_etc_hosts | Wahl: true false Voreinstellung: true |
Ob das Modul versuchen soll, den Namen mithilfe der /etc/hosts-Datei(n) des Hosts vor der Ausführung von Abfrageoperationen aufzulösen. |
Rückgabewerte
Schlüssel | Zurückgegeben | Beschreibung |
---|---|---|
addresses | Bei Erfolg, wenn alle Namen auf mindestens 1 IPv4-Adresse aufgelöst wurden. | Ein 2-dimensionales Array von IPv4-Adressen zu jedem der abgefragten Namen. |
Beispiel für die Verwendung
Beispiele für die Verwendung finden Sie hier.
Danksagungen
Lizenz
Dieses Projekt steht unter der MIT-Lizenz - siehe die LICENSE Datei für Details.
DNS lookups in Ansble (on remote host) made easy.
ansible-galaxy install alexisfacques.ansible_module_dig