Spec-Zone.ru › Ansible

Модуль community.dns.hetzner_dns_record_set — Добавление или удаление записей DNS в службе Hetzner DNS

Примечание

Этот модуль входит в коллекцию community.dns (версия 3.0.5).

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

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

Чтобы использовать его в плейбуке, укажите: community.dns.hetzner_dns_record_set.

Новая функция в community.dns 2.0.0

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

Обзор

  • Создаёт и удаляет записи DNS в службе Hetzner DNS.

Параметры

Параметр

Комментарии

bulk_operation_threshold

целое число

Определяет порог, при котором используются массовые операции.

Значение по умолчанию 2 означает, что если запланировано 2 или более операций одного типа, и API поддерживает массовые операции для этого типа операции, они будут использоваться.

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

hetzner_token

псевдонимы: api_token

строка / обязательно

Токен для API Hetzner.

Если не указан, будет считан из переменной окружения HETZNER_DNS_TOKEN.

on_existing

строка

Этот параметр определяет поведение, если запись уже существует, но отличается от указанной записи. Для этого сравнения используются value и ttl для всех записей типа type, соответствующих prefix соответственно record.

Если установлено replace, запись будет обновлена (state=present) или удалена (state=absent). Это поведение старого overwrite=true.

Если установлено keep_and_fail, модуль завершится ошибкой и не будет изменять записи. Это поведение старого overwrite=false если state=present.

Если установлено keep_and_warn, модуль выведет предупреждение и не будет изменять записи.

Если установлено keep, модуль не будет изменять записи. Это поведение старого overwrite=false если state=absent.

Если state=absent и значение не replace, то необходимо указать value.

Доступные значения:

  • "replace" ← (по умолчанию)
  • "keep_and_fail"
  • "keep_and_warn"
  • "keep"

prefix

строка

добавлен в community.dns 0.2.0

Префикс записи DNS.

Это часть record перед zone_name. Например, если запись для изменения www.example.com для зоны example.com, то префикс www. Если запись в этом примере example.com, то префикс '' (пустая строка).

Необходимо указать ровно один из record и prefix.

record

строка

Полная запись DNS для создания или удаления.

Необходимо указать ровно один из record и prefix.

state

строка / обязательно

Определяет состояние записи ресурса.

Доступные значения:

  • "present"
  • "absent"

ttl

целое число

Время жизни (TTL) новой записи в секундах.

txt_character_encoding

строка

добавлен в community.dns 2.5.0

Как интерпретировать числовые последовательности экранирования (\xyz) — как восьмеричные или десятичные числа. Используется только когда txt_transformation=quoted.

Значение по умолчанию изменилось на decimal в community.dns 3.0.0. Раньше значением по умолчанию было octal. Значение decimal совместимо с RFC 1035.

Доступные значения:

  • "decimal" ← (по умолчанию)
  • "octal"

txt_transformation

строка

Определяет, как значения TXT-записей преобразуются между API и вводом/выводом модуля.

Значение api означает, что значения возвращаются модулем так, как они возвращаются API, и отправляются в API так, как они были переданы в модуль. Для проверок идемпотентности строка ввода будет сравниваться со строками, возвращаемыми API. API может автоматически преобразовывать некоторые значения, например, разделяя длинные значения или добавляя кавычки, что может вызвать проблемы с идемпотентностью.

Значение unquoted автоматически преобразует значения, так что вы можете передавать значения без кавычек, а модуль вернёт значения без кавычек. Если вы передадите значения в кавычках, они будут заключены в двойные кавычки.

Значение quoted автоматически преобразует значения таким образом, чтобы для значений, содержащих пробелы, символы, такие как кавычки и обратные слэши, а также для значений длиннее 255 байт, нужно использовать кавычки. Это также гарантирует, что значения из API возвращаются в нормализованной кодировке.

Значение по умолчанию, unquoted, гарантирует, что вы можете работать со значениями, не задумываясь о правильном использовании кавычек для DNS. Большинство пользователей должны использовать unquoted или quoted, но не api.

Примечание: код преобразования предполагает кодировку UTF-8 для значений. Если вам нужна другая кодировка, используйте txt_transformation=api и обрабатывайте кодировку самостоятельно.

Доступные значения:

  • "api"
  • "quoted"
  • "unquoted" ← (по умолчанию)

type

строка / обязательно

Тип записи DNS для создания или удаления.

Доступные значения:

  • "A"
  • "AAAA"
  • "CAA"
  • "CNAME"
  • "DANE"
  • "DS"
  • "HINFO"
  • "MX"
  • "NS"
  • "RP"
  • "SOA"
  • "SRV"
  • "TLSA"
  • "TXT"

value

список / элементы=строка

Новое значение при создании записи DNS.

Разрешены списки YAML или несколько значений через запятую.

При удалении записи все значения записи должны быть указаны, иначе она не будет удалена.

Обязательно указывать, если state=present или когда on_existing не replace.

Будет проигнорировано, если state=absent и on_existing=replace.

zone_id

строка

добавлен в community.dns 0.2.0

Идентификатор зоны DNS для изменения.

Необходимо указать ровно один из zone_name и zone_id.

zone_name

aliases: zone

string

Доменная зона для изменения.

Должно быть указано ровно одно из zone_name и zone_id.

Атрибуты

Атрибут

Поддержка

Описание

action_group

Группа действий: community.dns.hetzner

добавлен в community.dns 2.4.0

Используйте group/community.dns.hetzner в module_defaults, чтобы задать значения по умолчанию для данного модуля.

check_mode

Поддержка: полная

Может работать в check_mode и возвращать прогноз изменения статуса без модификации целевого объекта.

diff_mode

Поддержка: полная

Вернёт подробности о том, что изменилось (или, возможно, нуждается в изменении в check_mode), когда используется режим diff.

Примечания

Примечание

  • Для записей CNAME, используйте абсолютные имена DNS для значений. Абсолютные имена DNS оканчиваются символом точки ., например foo.example.com.. Если вы используете относительное имя DNS без заключительной точки, значение будет относиться к зоне записи CNAME.

Примеры

- name: Add new.foo.com as an A record with 3 IPs
  community.dns.hetzner_dns_record_set:
    state: present
    zone: foo.com
    record: new.foo.com
    type: A
    ttl: 7200
    value: 1.1.1.1,2.2.2.2,3.3.3.3
    hetzner_token: access_token

- name: Update new.foo.com as an A record with a list of 3 IPs
  community.dns.hetzner_dns_record_set:
    state: present
    zone: foo.com
    record: new.foo.com
    type: A
    ttl: 7200
    value:
      - 1.1.1.1
      - 2.2.2.2
      - 3.3.3.3
    hetzner_token: access_token

- name: Retrieve the details for new.foo.com
  community.dns.hetzner_dns_record_set_info:
    zone: foo.com
    record: new.foo.com
    type: A
    hetzner_token: access_token
  register: rec

- name: Delete new.foo.com A record using the results from the facts retrieval command
  community.dns.hetzner_dns_record_set:
    state: absent
    zone: foo.com
    record: "{{ rec.set.record }}"
    ttl: "{{ rec.set.ttl }}"
    type: "{{ rec.set.type }}"
    value: "{{ rec.set.value }}"
    hetzner_token: access_token

- name: Add an AAAA record
  # Note that because there are colons in the value that the IPv6 address must be quoted!
  community.dns.hetzner_dns_record_set:
    state: present
    zone: foo.com
    record: localhost.foo.com
    type: AAAA
    ttl: 7200
    value: "::1"
    hetzner_token: access_token

- name: Add a TXT record
  community.dns.hetzner_dns_record_set:
    state: present
    zone: foo.com
    record: localhost.foo.com
    type: TXT
    ttl: 7200
    value: 'bar'
    hetzner_token: access_token

- name: Remove the TXT record
  community.dns.hetzner_dns_record_set:
    state: absent
    zone: foo.com
    record: localhost.foo.com
    type: TXT
    ttl: 7200
    value: 'bar'
    hetzner_token: access_token

- name: Add a CAA record
  community.dns.hetzner_dns_record_set:
    state: present
    zone: foo.com
    record: foo.com
    type: CAA
    value:
    - '128 issue "letsencrypt.org"'
    - '128 iodef "mailto:webmaster@foo.com"'
    hetzner_token: access_token

- name: Add an MX record
  community.dns.hetzner_dns_record_set:
    state: present
    zone: foo.com
    record: foo.com
    type: MX
    ttl: 3600
    value:
    - "10 mail.foo.com"
    hetzner_token: access_token

- name: Add a CNAME record
  community.dns.hetzner_dns_record_set:
    state: present
    zone: bla.foo.com
    record: foo.com
    type: CNAME
    ttl: 3600
    value:
    - foo.foo.com
    hetzner_token: access_token

- name: Add a PTR record
  community.dns.hetzner_dns_record_set:
    state: present
    zone: foo.foo.com
    record: foo.com
    type: PTR
    ttl: 3600
    value:
    - foo.foo.com
    hetzner_token: access_token

- name: Add an SPF record
  community.dns.hetzner_dns_record_set:
    state: present
    zone: foo.com
    record: foo.com
    type: SPF
    ttl: 3600
    value:
    - "v=spf1 a mx ~all"
    hetzner_token: access_token

- name: Add a PTR record
  community.dns.hetzner_dns_record_set:
    state: present
    zone: foo.com
    record: foo.com
    type: PTR
    ttl: 3600
    value:
    - "10 100 3333 service.foo.com"
    hetzner_token: access_token

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

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

Ключ

Описание

zone_id

string

Идентификатор зоны.

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

Пример: "23"

Авторы

  • Markus Bergholz (@markuman)
  • Felix Fontein (@felixfontein)

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

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

© 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/dns/hetzner_dns_record_set_module.html

Spec-Zone.ru

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