Spec-Zone.ru › Ansible 2.11

community.general.dig – запрос DNS с помощью библиотеки dnspython

Примечание

Этот плагин входит в коллекцию community.general (версия 2.0.1).

Для его установки используйте: ansible-galaxy collection install community.general.

Для использования в книге задач укажите: community.general.dig.

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

  • Запрос 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
строка
    Варианты:
  • A ←
  • ALL
  • AAAA
  • CNAME
  • DNAME
  • DLV
  • DNSKEY
  • DS
  • HINFO
  • LOC
  • MX
  • NAPTR
  • NS
  • NSEC3PARAM
  • PTR
  • RP
  • RRSIG
  • SOA
  • SPF
  • SRV
  • SSHFP
  • TLSA
  • TXT
тип записи для запроса

Примечания

Примечание

  • ALL не является записью как таковой, а просто перечисляет поля, доступные для результатов любой записи в виде словаря.
  • Хотя плагин «dig» поддерживает все, что поддерживает dnspython «из коробки», только подмножество может быть преобразовано в словарь.
  • Если вам нужно получить запись AAAA (IPv6-адрес), вы должны явно указать тип записи. Синтаксис указания типа записи показан в примерах ниже.
  • Заключительная точка в большинстве примеров является необязательной, но указана для полноты/правильности.

Примеры

- name: Simple A record (IPV4 address) lookup for example.com
  ansible.builtin.debug:
    msg: "{{ lookup('community.general.dig', 'example.com.')}}"

- name: "The TXT record for example.org."
  ansible.builtin.debug:
    msg: "{{ lookup('community.general.dig', 'example.org.', 'qtype=TXT') }}"

- name: "The TXT record for example.org, alternative syntax."
  ansible.builtin.debug:
    msg: "{{ lookup('community.general.dig', 'example.org./TXT') }}"

- name: use in a loop
  ansible.builtin.debug:
    msg: "MX record for gmail.com {{ item }}"
  with_items: "{{ lookup('community.general.dig', 'gmail.com./MX', wantlist=True) }}"

- ansible.builtin.debug:
    msg: "Reverse DNS for 192.0.2.5 is {{ lookup('community.general.dig', '192.0.2.5/PTR') }}"
- ansible.builtin.debug:
    msg: "Reverse DNS for 192.0.2.5 is {{ lookup('community.general.dig', '5.2.0.192.in-addr.arpa./PTR') }}"
- ansible.builtin.debug:
    msg: "Reverse DNS for 192.0.2.5 is {{ lookup('community.general.dig', '5.2.0.192.in-addr.arpa.', 'qtype=PTR') }}"
- ansible.builtin.debug:
    msg: "Querying 198.51.100.23 for IPv4 address for example.com. produces {{ lookup('dig', 'example.com', '@198.51.100.23') }}"

- ansible.builtin.debug:
    msg: "XMPP service for gmail.com. is available at {{ item.target }} on port {{ item.port }}"
  with_items: "{{ lookup('community.general.dig', '_xmpp-server._tcp.gmail.com./SRV', 'flat=0', wantlist=True) }}"

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

Общие возвращаемые значения описаны в здесь, следующие поля уникальны для этого запроса:

Ключ Возвращаемое значение Описание
_list
список / элементы=любые
успех
Список составленных строк или словарей с ключом и значением. Если словарь, поля показывают возвращаемые ключи в зависимости от типа запроса

A
строка
успех
адрес

AAAA
строка
успех
адрес

ALL
строка
успех
владелец, ttl, тип

CNAME
строка
успех
цель

DLV
строка
успех
алгоритм, тип_хеша, ключ_тега, хеш

DNAME
строка
успех
цель

DNSKEY
строка
успех
флаги, алгоритм, протокол, ключ

DS
строка
успех
алгоритм, тип_хеша, ключ_тега, хеш

HINFO
строка
успех
cpu, os

LOC
строка
успех
широта, долгота, высота, размер, горизонтальная_точность, вертикальная_точность

MX
строка
успех
приоритет, обмен

NAPTR
строка
успех
порядок, приоритет, флаги, сервис, регулярное_выражение, замена

NS
строка
успех
цель

NSEC3PARAM
строка
успех
алгоритм, флаги, итерации, соль

PTR
строка
успех
цель

RP
строка
успех
mbox, txt

SOA
строка
успех
mname, rname, serial, refresh, retry, expire, minimum

SPF
строка
успех
строки

SRV
строка
успех
приоритет, вес, порт, цель

SSHFP
строка
успех
алгоритм, тип_хеша, отпечаток

TLSA
строка
успех
использование, селектор, тип, сертификат

TXT
строка
успех
строки



Авторы

  • Jan-Piet Mens (@jpmens) <jpmens(at)gmail.com>

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/dig_lookup.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API