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