alexisfacques.ansible_module_dig
ansible-module-dig
ansible-module-dig
est un module Ansible personnalisé qui vous permet d'effectuer des opérations de recherche DNS à partir d'hôtes Ansible distants, et renvoie une liste des adresses IP (v4) résolues par nom. Le module dig
peut également être configuré pour analyser le fichier /etc/hosts
des hôtes avant d'effectuer une recherche.
Ce module peut donc être utilisé pour :
- résoudre un ou plusieurs noms d'hôte ;
- vérifier si un ou plusieurs noms d'hôte peuvent être résolus (le module échouera si un nom d'hôte ne peut pas être résolu en au moins une adresse).
Module dig
vs. lookup('dig', ... )
d'Ansible
Assurez-vous de savoir ce que vous faites avant d'utiliser ce module ! La méthode officielle pour effectuer des recherches DNS dans Ansible est d'utiliser le lookup dig
.
Le principal problème avec les filtres de recherche, comme tous les modèles, est qu'ils sont évalués sur la machine de contrôle Ansible, et non sur l'hôte ciblé. Cela pourrait entraîner des effets secondaires inattendus lors de l'exécution de vos jeux Ansible dans des environnements réseaux complexes ou des scénarios de déploiement, où votre machine de contrôle peut résoudre tous les hôtes de votre cluster, mais les hôtes ne peuvent pas (par exemple, si vous exécutez vos jeux de configuration via un réseau de gestion externe ou dans des environnements réseau hors ligne ou hautement sécurisés).
Ce module Ansible dig
comble cette lacune en exécutant les recherches directement depuis les hôtes distants.
Pour commencer
Exigences
Les exigences ci-dessous sont nécessaires sur l'hôte qui exécute ce module.
dnspython
pour Python.
Installation
Façon "Ansible role"
- Clonez ce dépôt dans votre
role_path
Ansible, ou installez-le viaansible-galaxy
;ansible-galaxy install alexisfacques.ansible_module_dig
- Importez le rôle dans vos playbooks avant d'exécuter tout rôle ou tâche nécessitant le module
dig
:- hosts: all roles: - alexisfacques.ansible_module_dig tasks: - name: Assurer que google.com peut être résolu dig: qtype: A name: google.com register: dig_result
Façon "Ansible library"
Alternativement, si l'importation d'un rôle est trop compliquée, vous pouvez stocker ce module dans le répertoire library
défini dans votre fichier ansible.cfg
(par défaut, c'est un sous-répertoire appelé library
dans le répertoire qui contient vos playbooks) :
[defaults]
library = /path/to/your/library
Utilisation
Paramètres
Paramètre | Choix/Defaults | Commentaires |
---|---|---|
qtype |
Par défaut: A |
Indique quel type de requête est requis : ANY, A, MX, SIG... Le type peut être n'importe quel type de requête valide. |
name - string | list / requis |
Le(s) nom(s) de la ou des ressources à rechercher. | |
nameserver - string | list |
Le(s) nom(s) ou adresse(s) IPv4 du ou des serveurs de noms à utiliser. | |
with_etc_hosts | Choix: true false Par défaut: true |
Indique si le module doit essayer de résoudre le nom en utilisant le(s) fichier(s) /etc/hosts de l'hôte avant d'exécuter une opération de recherche. |
Valeurs de retour
Clé | Rendue | Description |
---|---|---|
addresses | En cas de succès, si tous les noms ont été résolus en au moins 1 adresse IPv4. | Un tableau 2D d'adresses IPv4 pour chacun des noms recherchés. |
Exemple d'utilisation
Des exemples d'utilisation peuvent être trouvés ici.
Remerciements
Licence
Ce projet est sous licence MIT - consultez le fichier LICENSE pour plus de détails.
DNS lookups in Ansble (on remote host) made easy.
ansible-galaxy install alexisfacques.ansible_module_dig