alexisfacques.ansible_module_dig

ansible-module-dig

ansible-module-dig es un módulo personalizado de Ansible que permite realizar operaciones de búsqueda DNS desde hosts Ansible remotos y devuelve una lista de las direcciones IP (v4) resueltas por nombre. El módulo dig también se puede configurar para analizar el archivo /etc/hosts del host antes de realizar cualquier operación de búsqueda.

Este módulo se puede utilizar tanto para:

  • resolver uno o varios nombres de host;
  • asegurar si uno o varios nombres de host pueden ser resueltos (el módulo fallará si un nombre de host no puede resolverse a al menos una dirección).

Módulo dig vs. lookup('dig', ... ) en Ansible

¡Asegúrate de saber lo que haces antes de usar este módulo! La forma oficial de realizar búsquedas DNS en Ansible es utilizando lookup('dig').

El principal problema al usar filtros de búsqueda, como toda plantillación, es que se evalúan en la máquina de control de Ansible y no en el host afectado. Esto podría causar efectos secundarios inesperados al ejecutar tus juegos de Ansible en entornos de red complejos o escenarios de despliegue, donde tu máquina de control puede resolver todos los hosts de tu clúster, pero los hosts no pueden (por ejemplo, al ejecutar tus configuraciones a través de una red de gestión externa o en entornos de red desconectados o altamente seguros).

Este módulo de Ansible dig llena este vacío al ejecutar las búsquedas directamente desde los hosts remotos.

Empezando

Requisitos

Los siguientes requisitos son necesarios en el host que ejecuta este módulo.

  • dnspython para Python.

Instalación

La forma "Ansible role"

  • Clona este repositorio en tu role_path de Ansible o instálalo a través de ansible-galaxy;
    ansible-galaxy install alexisfacques.ansible_module_dig
    
  • Importa el rol en tus playbooks antes de ejecutar cualquier rol o tarea que requiera el módulo dig:
    - hosts: all
      roles:
        - alexisfacques.ansible_module_dig
      tasks:
        - name: Asegurarse de que google.com se pueda resolver
          dig:
            qtype: A
            name: google.com
          register: dig_result
    

La forma "Ansible library"

Alternativamente, si importar un rol es demasiado complicado, puedes almacenar este módulo en el directorio library definido en tu archivo ansible.cfg (El valor predeterminado es un subdirectorio llamado library en el directorio que contiene tus playbooks):

[defaults]
library = /path/to/your/library

Uso

Parámetros

Parámetro Opciones/Predeterminados Comentarios
qtype
Predeterminado:
A
Indica qué tipo de consulta se requiere: ANY, A, MX, SIG... El tipo puede ser cualquier tipo de consulta válido.
name
- cadena | lista / requerido
El/los nombre(s) del/los recurso(s) que se van a buscar.
nameserver
- cadena | lista
El/los nombre(s) o dirección(es) IPv4 de los servidores de nombres a utilizar.
with_etc_hosts Opción:
true
false

Predeterminado:
true
Indica si el módulo debe intentar resolver el nombre utilizando el/los archivo(s) /etc/hosts del host antes de ejecutar cualquier operación de búsqueda.

Valores de retorno

Clave Devuelto Descripción
addresses Si tiene éxito, si todos los nombres han sido resueltos a al menos 1 dirección IPv4. Un array 2D de direcciones IPv4 para cada uno de los nombres buscados.

Ejemplo de uso

Puedes encontrar ejemplos de uso aquí.

Agradecimientos

Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.

Acerca del proyecto

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

Instalar
ansible-galaxy install alexisfacques.ansible_module_dig
Licencia
mit
Descargas
313
Propietario
🔵⚪️