Spec-Zone.ru › Ansible

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

Примечание

Этот плагин поиска является частью коллекции community.general (версия 9.5.0).

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

Для установки используйте: ansible-galaxy collection install community.general. Вам потребуются дополнительные требования для использования этого плагина поиска, см. Требования для получения подробной информации.

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

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

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

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

Требования

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

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

Термины

Параметр

Комментарии

Terms

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 не является записью как таковой, просто перечисленные поля доступны для любых результатов записей, которые вы получаете в виде словаря.
  • Хотя плагин поиска «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) }}"

- 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

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

Возвращено: success

A

string

адрес

Возвращено: success

AAAA

string

адрес

Возвращено: success

ALL

string

owner, ttl, type

Возвращено: success

CAA

string

added in community.general 6.3.0

flags

tag

value

Возвращено: success

CNAME

string

target

Возвращено: success

DNAME

string

target

Возвращено: success

DNSKEY

string

flags, algorithm, protocol, key

Возвращено: success

DS

string

algorithm, digest_type, key_tag, digest

Возвращено: success

HINFO

string

cpu, os

Возвращено: success

LOC

string

latitude, longitude, altitude, size, horizontal_precision, vertical_precision

Возвращено: success

MX

string

preference, exchange

Возвращено: success

NAPTR

string

order, preference, flags, service, regexp, replacement

Возвращено: success

NS

string

target

Возвращено: success

NSEC3PARAM

string

algorithm, flags, iterations, salt

Возвращено: success

PTR

string

target

Возвращено: success

RP

string

mbox, txt

Возвращено: success

SOA

string

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

Возвращено: success

SPF

string

strings

Возвращено: success

SRV

string

priority, weight, port, target

Возвращено: success

SSHFP

string

algorithm, fp_type, fingerprint

Возвращено: success

TLSA

string

usage, selector, mtype, cert

Возвращено: success

TXT

string

strings

Возвращено: success

Авторы

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

Подсказка

Записи конфигурации для каждого типа записи имеют порядок приоритета от низкого к высокому. Например, переменная, которая находится ниже в списке, переопределит переменную, которая находится выше.

Ссылки на сборник

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

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

Spec-Zone.ru

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