Spec-Zone.ru › Ansible

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

Примечание

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

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.general. Для использования этого lookup-плагина необходимы дополнительные требования. Подробности см. в разделе Требования.

Чтобы использовать его в playbook, укажите: community.general.dig.

  • Краткое описание
  • Требования
  • Аргументы
  • Параметры-ключевые слова
  • Примечания
  • Примеры
  • Возвращаемое значение

Краткое описание

  • Lookup dig выполняет запросы к DNS-серверам для получения DNS-записей для определённого имени (FQDN — полное доменное имя). Таким способом можно запрашивать любые DNS-записи.
  • Существует несколько вариантов синтаксиса для указания типа записи, которую нужно получить, и имени, для которого она запрашивается. Также можно явно указать DNS-серверы, используемые для запросов.
  • В простейшем случае lookup-плагин dig можно использовать для получения IPv4-адреса (DNS-записи A), связанного с FQDN.
  • Помимо записи A (по умолчанию), можно указать другой тип записи для запроса. Это можно сделать, передав lookup dig дополнительный параметр в формате qtype=TYPE или добавив /TYPE к запрашиваемому FQDN.
  • Если с запрошенной записью связано несколько значений, результаты возвращаются в виде списка, разделённого запятыми. В таких случаях можно передать вызову lookup параметр wantlist=true или использовать query вместо lookup, чтобы значения записи возвращались в виде списка, по которому затем можно выполнить итерацию.
  • По умолчанию lookup использует DNS-серверы, настроенные в системе, для выполнения запроса. Также можно явно указать DNS-серверы для запроса, используя запись @DNS_SERVER_1,DNS_SERVER_2,…,DNS_SERVER_N. Её нужно передать lookup в качестве дополнительного параметра.

Требования

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

  • dnspython (библиотека Python, http://www.dnspython.org/)

Аргументы

Параметр

Комментарии

Аргументы

list / elements=string

Домен или домены для запроса.

Параметры ключевых слов

Здесь описаны параметры ключевых слов поиска. Это значения key1=value1, key2=value2 и так далее в следующих примерах: lookup('community.general.dig', key1=value1, key2=value2, ...) и query('community.general.dig', key1=value1, key2=value2, ...)

Параметр

Комментарии

class

string

Класс.

По умолчанию: "IN"

fail_on_error

boolean

добавлено в community.general 5.4.0

Прервать выполнение при ошибках поиска.

В будущем значение этого параметра по умолчанию, вероятно, изменится на true. Текущее значение по умолчанию, false, используется для обратной совместимости; при возникновении ошибок результатом будут пустые строки или строка NXDOMAIN.

Варианты:

  • false ← (по умолчанию)
  • true

flat

integer

Если значение равно 0, каждая запись возвращается в виде словаря, в противном случае — в виде строки.

По умолчанию: 1

port

integer

добавлено в community.general 9.5.0

Использовать порт в качестве целевого порта при поиске записей DNS.

По умолчанию: 53

qtype

string

Тип записи для запроса.

DLV удалён в community.general 6.0.0.

CAA добавлен в community.general 6.3.0.

Варианты:

  • "A" ← (по умолчанию)
  • "ALL"
  • "AAAA"
  • "CAA"
  • "CNAME"
  • "DNAME"
  • "DNSKEY"
  • "DS"
  • "HINFO"
  • "LOC"
  • "MX"
  • "NAPTR"
  • "NS"
  • "NSEC3PARAM"
  • "PTR"
  • "RP"
  • "RRSIG"
  • "SOA"
  • "SPF"
  • "SRV"
  • "SSHFP"
  • "TLSA"
  • "TXT"

real_empty

boolean

добавлено в community.general 6.0.0

Возвращать пустой результат без пустых строк и возвращать пустой список вместо NXDOMAIN.

В будущем значение этого параметра по умолчанию, вероятно, изменится на true.

Если указано несколько доменов для запроса, для этого параметра принудительно устанавливается значение true.

Варианты:

  • false ← (по умолчанию)
  • true

retry_servfail

boolean

добавлено в community.general 3.6.0

Повторить запрос к серверу имён, если он возвращает SERVFAIL.

Варианты:

  • false ← (по умолчанию)
  • true

tcp

boolean

добавлено в community.general 7.5.0

Использовать TCP для поиска записей DNS.

Варианты:

  • false ← (по умолчанию)
  • true

Примечания

Примечание

  • При совместном использовании именованных и позиционных параметров позиционные параметры необходимо указывать перед именованными: lookup('community.general.dig', term1, term2, key1=value1, key2=value2) и query('community.general.dig', term1, term2, key1=value1, key2=value2)
  • ALL сам по себе не является записью; лишь перечисленные поля доступны для любых результатов записей, которые вы получаете в виде словаря.
  • Хотя плагин поддерживает всё, что 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) }}"

- name: Lookup multiple names at once
  ansible.builtin.debug:
    msg: "A record found {{ item }}"
  loop: "{{ query('community.general.dig', 'example.org.', 'example.com.', 'gmail.com.') }}"

- name: Lookup multiple names at once (from list variable)
  ansible.builtin.debug:
    msg: "A record found {{ item }}"
  loop: "{{ query('community.general.dig', *hosts) }}"
  vars:
    hosts:
      - example.org.
      - example.com.
      - gmail.com.

- 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) }}"

- name: Retry nameservers that return SERVFAIL
  ansible.builtin.debug:
    msg: "{{ lookup('community.general.dig', 'example.org./A', retry_servfail=true) }}"

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

Ключ

Описание

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

list / elements=any

Список составленных строк или словарей с полями, зависящими от типа запроса.

Возвращается: успешно

A

string

address.

Возвращается: успешно

AAAA

string

address.

Возвращается: успешно

ALL

string

owner, ttl, type.

Возвращается: успешно

CAA

string

добавлено в community.general 6.3.0

flags.

tag.

value.

Возвращается: успешно

CNAME

string

target.

Возвращается: успешно

DNAME

string

target.

Возвращается: успешно

DNSKEY

string

flags, algorithm, protocol, key.

Возвращается: успешно

DS

string

algorithm, digest_type, key_tag, digest.

Возвращается: успешно

HINFO

string

cpu, os.

Возвращается: успешно

LOC

string

latitude, longitude, altitude, size, horizontal_precision, vertical_precision.

Возвращается: успешно

MX

string

preference, exchange.

Возвращается: успешно

NAPTR

string

order, preference, flags, service, regexp, replacement.

Возвращается: успешно

NS

string

target.

Возвращается: успешно

NSEC3PARAM

string

algorithm, flags, iterations, salt.

Возвращается: при успехе

PTR

string

target.

Возвращается: при успехе

RP

string

mbox, txt.

Возвращается: при успехе

SOA

string

mname, rname, serial, refresh, retry, expire, minimum.

Возвращается: при успехе

SPF

string

strings.

Возвращается: при успехе

SRV

string

priority, weight, port, target.

Возвращается: при успехе

SSHFP

string

algorithm, fp_type, fingerprint.

Возвращается: при успехе

TLSA

string

usage, selector, mtype, cert.

Возвращается: при успехе

TXT

string

strings.

Возвращается: при успехе

Авторы

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

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Запросить помощь
  • Отправить отчёт об ошибке
  • Запросить новую функцию
  • Связь

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

Spec-Zone.ru

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