Spec-Zone.ru › Ansible 2.10

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

Примечание

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

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

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

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

Описание

  • Поиск dig выполняет запросы к DNS-серверам для получения DNS-записей для определенного имени (FQDN — полностью квалифицированное доменное имя). Таким образом, можно выполнить поиск любой DNS-записи.
  • Существует несколько различных синтаксических конструкций для указания записываемой записи и для которого имени. Также можно явно указать DNS-сервер(ы), которые следует использовать для поиска.
  • В своем самом простом виде плагин поиска dig можно использовать для получения IP-адреса 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
строка
успех
порядок, приоритет, флаги, сервис, regexp, замена

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

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

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

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

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

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

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

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

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

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



Авторы

  • 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.10/collections/community/general/dig_lookup.html

Spec-Zone.ru

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