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 via ansible-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.

À propos du projet

DNS lookups in Ansble (on remote host) made easy.

Installer
ansible-galaxy install alexisfacques.ansible_module_dig
Licence
mit
Téléchargements
313
Propriétaire
🔵⚪️