ansible_module_dig

ansible-module-dig

ansible-module-dig — это пользовательский модуль Ansible, который позволяет выполнять операции DNS поиска с удаленных хостов Ansible и возвращает список разрешенных IP (v4) адресов для каждого имени. Модуль dig также может быть настроен для анализа файла /etc/hosts на хостах перед выполнением любой операции поиска.

Этот модуль может использоваться для:

  • разрешения одного или нескольких имен хостов;
  • подтверждения возможности разрешения одного или нескольких имен хостов (модуль упадет, если имя не может быть разрешено хотя бы в один адрес).

Модуль dig против Ansible lookup('dig', ... )

Убедитесь, что вы знаете, что делаете, перед использованием этого модуля! Официальный способ выполнения DNS-запросов в Ansible — это использование dig lookup.

Основная проблема использования фильтров поиска, как и всего шаблонирования, заключается в том, что они оцениваются на управляющей машине Ansible, а не на целевом хосте. Это может вызвать неожиданные побочные эффекты при выполнении ваших Ansible задач в сложных сетевых окружениях или сценариях развертывания, где ваша управляющая машина может разрешать все хосты вашего кластера, но хосты не могут (например, выполнение ваших конфигурационных задач через внешнюю сеть управления или в оффлайновых или высокозащищенных сетевых окружениях).

Этот модуль Ansible dig заполняет этот пробел, выполняя запросы непосредственно с удаленных хостов.

Начало работы

Требования

Следующие требования необходимы на хосте, который выполняет этот модуль.

  • dnspython для Python.

Установка

Способ "Ansible role"

  • Склонируйте этот репозиторий в ваш Ansible role_path или установите через ansible-galaxy;
    ansible-galaxy install alexisfacques.ansible_module_dig
    
  • Импортируйте роль в ваши плейбуки перед запуском любой роли или задачи, которые требуют модуля dig:
    - hosts: all
      roles:
        - alexisfacques.ansible_module_dig
      tasks:
        - name: Убедиться, что google.com может быть разрешено
          dig:
            qtype: A
            name: google.com
          register: dig_result
    

Способ "Ansible library"

В качестве альтернативы, если импорт роли слишком хлопотен, вы можете сохранить этот модуль в каталоге library, определенном в вашем файле ansible.cfg (по умолчанию это подкаталог library в каталоге, который содержит ваши плейбуки):

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

Использование

Параметры

Параметр Выбор/По умолчанию Комментарии
qtype
По умолчанию:
A
Указывает, какой тип запроса требуется: ANY, A, MX, SIG... Тип может быть любым допустимым типом запроса.
name
- строка | список / обязательно
Имена ресурса(ов), которые подлежат поиску.
nameserver
- строка | список
Имена или IPv4 адреса используемых nameserver(ов).
with_etc_hosts Выбор:
true
false

По умолчанию:
true
Указывает, должен ли модуль пытаться разрешить имя, используя файл(ы) /etc/hosts хоста перед выполнением любой операции поиска.

Возвращаемые значения

Ключ Возвращено Описание
addresses При успешном разрешении, если все имена были разрешены хотя бы в 1 IPv4 адрес. Двумерный массив IPv4 адресов для каждого из запрашиваемых имен.

Пример использования

Примеры использования можно найти здесь.

Благодарности

Лицензия

Этот проект лицензирован под MIT License - смотрите файл LICENSE для получения подробностей.

О проекте

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

Установить
ansible-galaxy install alexisfacques/ansible-module-dig
Лицензия
mit
Загрузки
290
Владелец
🔵⚪️