dig – запрос DNS с использованием библиотеки dnspython
Краткое описание
- Поиск dig выполняет запросы к DNS-серверам для получения DNS-записей для определенного имени (FQDN — полностью квалифицированное доменное имя). Таким образом, можно выполнить поиск любой DNS-записи.
- Существует несколько различных синтаксисов, которые можно использовать для указания того, какая запись должна быть получена и для какого имени. Также можно явно указать DNS-сервер(ы), которые нужно использовать для поиска.
- В самом простом случае плагин поиска dig можно использовать для получения IPv4-адреса (DNS-запись A), связанного с FQDN.
- В дополнение к (по умолчанию) записи A также можно указать другой тип записи, который следует запросить. Это можно сделать, передав дополнительный параметр формата qtype=TYPE в поиск dig или добавив /TYPE к запрошенному FQDN.
- Если с запрошенной записью связаны несколько значений, результаты будут возвращены в виде списка, разделенного запятыми. В таких случаях вы можете передать параметр wantlist=True в плагин, что приведет к возвращению значений записи в виде списка, по которому вы можете итерироваться позже.
- По умолчанию поиск будет полагаться на сконфигурированные в системе DNS-сервера для выполнения запроса. Также можно явно указать DNS-серверы для запроса, используя обозначение @DNS_SERVER_1,DNS_SERVER_2,…,DNS_SERVER_N. Это необходимо передать в качестве дополнительного параметра в поиск.
Требования
Ниже перечислены требования к локальному узлу-мастеру, на котором выполняется этот поиск.
- dnspython (библиотека python, http://www.dnspython.org/)
Параметры
| Параметр | Варианты/Значения по умолчанию | Конфигурация | Комментарии |
|---|---|---|---|
| _terms - | домен(ы) для запроса | ||
| flat - | По умолчанию: 1 | Если 0, каждая запись возвращается как словарь, в противном случае — строка | |
| qtype - |
| тип записи для запроса |
Примечания
Примечание
- ALL — не запись как таковая, а просто перечисленные поля доступны для результатов любой записи в виде словаря.
- Хотя плагин поиска «dig» поддерживает все, что поддерживает dnspython, только подмножество может быть преобразовано в словарь.
- Если вам нужно получить запись AAAA (IPv6-адрес), вы должны явно указать тип записи. Синтаксис указания типа записи показан в примерах ниже.
- Конечная точка в большинстве примеров является чисто необязательной, но указана для полноты/правильности.
Примеры
- name: Simple A record (IPV4 address) lookup for example.com
debug: msg="{{ lookup('dig', 'example.com.')}}"
- name: "The TXT record for example.org."
debug: msg="{{ lookup('dig', 'example.org.', 'qtype=TXT') }}"
- name: "The TXT record for example.org, alternative syntax."
debug: msg="{{ lookup('dig', 'example.org./TXT') }}"
- name: use in a loop
debug: msg="MX record for gmail.com {{ item }}"
with_items: "{{ lookup('dig', 'gmail.com./MX', wantlist=True) }}"
- debug: msg="Reverse DNS for 192.0.2.5 is {{ lookup('dig', '192.0.2.5/PTR') }}"
- debug: msg="Reverse DNS for 192.0.2.5 is {{ lookup('dig', '5.2.0.192.in-addr.arpa./PTR') }}"
- debug: msg="Reverse DNS for 192.0.2.5 is {{ lookup('dig', '5.2.0.192.in-addr.arpa.', 'qtype=PTR') }}"
- debug: msg="Querying 198.51.100.23 for IPv4 address for example.com. produces {{ lookup('dig', 'example.com', '@198.51.100.23') }}"
- debug: msg="XMPP service for gmail.com. is available at {{ item.target }} on port {{ item.port }}"
with_items: "{{ lookup('dig', '_xmpp-server._tcp.gmail.com./SRV', 'flat=0', wantlist=True) }}"
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие являются полями, уникальными для этого поиска:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| _list - | список составленных строк или словарей с ключом и значением. Если словарь, поля показывают возвращаемые ключи в зависимости от типа запроса |
Статус
- Интерфейс этого поиска не гарантируется как обратный. [превью]
- Этот поиск поддерживается сообществом Ansible. [сообщество]
Авторы
- Jan-Piet Mens (@jpmens) <jpmens(at)gmail.com>
Подсказка
Если вы заметите какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ, чтобы улучшить его.
Подсказка
Параметры конфигурации для каждого типа записи имеют порядок приоритета от низкого к высокому. Например, переменная, которая находится ниже в списке, переопределит переменную, которая расположена выше.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/plugins/lookup/dig.html