Spec-Zone.ru › Ansible 2.11

community.aws.route53 – добавление или удаление записей в DNS-сервисе Amazon Route 53

Примечание

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

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

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

Введено в версии 1.0.0: модуля community.aws

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

Описание

  • Создаёт и удаляет записи DNS в сервисе Amazon Route 53.

Требования

Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.

  • python >= 2.6
  • boto

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
alias
boolean
    Варианты:
  • нет
  • да
Указывает, является ли это записью псевдонима.
По умолчанию false.
alias_evaluate_target_health
boolean
    Варианты:
  • нет ←
  • да
Определяет, следует ли проверять состояние здоровья целевого объекта псевдонима. Полезно для псевдонимов балансировщиков нагрузки Elastic.
alias_hosted_zone_id
string
Идентификатор размещенной зоны.
aws_access_key
string
Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY.
Если задан параметр profile, этот параметр игнорируется.
Передача параметров aws_access_key и profile одновременно устарела и после 2022-06-01 эти параметры будут взаимоисключающими.

Псевдонимы: ec2_access_key, access_key
aws_ca_bundle
путь
Расположение пакета CA для проверки SSL-сертификатов.
Используется только для модулей на основе boto3.
Примечание: Пакет CA считывается на стороне «модуля» и может потребоваться его явное копирование из контроллера, если он не запускается локально.
aws_config
словарь
Словарь для изменения конфигурации botocore.
Параметры можно найти по адресу https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config.
Для модулей boto используется только ключ «user_agent». Дополнительную информацию о конфигурации boto см. по адресу http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto.
aws_secret_key
строка
Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY.
Если задан параметр profile, этот параметр игнорируется.
Передача параметров aws_secret_key и profile одновременно устарела и после 2022-06-01 эти параметры будут взаимоисключающими.

Псевдонимы: ec2_secret_key, secret_key
debug_botocore_endpoint_logs
boolean
    Варианты:
  • нет ←
  • да
Использовать регистрирующий модуль botocore.endpoint для обработки уникальных (а не общих) API-вызовов «resource:action», сделанных во время задачи, выводя набор в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода полного списка, созданного во время выполнения playbook. Также можно использовать переменную окружения ANSIBLE_DEBUG_BOTOCORE_LOGS.
ec2_url
строка
URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль будет использовать конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если она задана.

Псевдонимы: aws_endpoint_url, endpoint_url
failover
строка
    Варианты:
  • SECONDARY
  • PRIMARY
Только для записей ресурсов Failover. Определяет, является ли эта запись основным или резервным ресурсом. Допустимые значения: PRIMARY и SECONDARY.
health_check
строка
Проверка состояния, ассоциируемая с этой записью.
hosted_zone_id
строка
Идентификатор зоны размещения DNS зоны, которую необходимо изменить.
Требуется, если не указан параметр zone.
identifier
строка
Обязательно для взвешенных, основанных на задержке и резервных записей ресурсов. Идентификатор, отличающий несколько записей ресурсов, имеющих одинаковую комбинацию имени DNS и типа.
overwrite
boolean
    Варианты:
  • нет
  • да
Заменить существующую запись при создании, если значения не совпадают.
private_zone
boolean
    Варианты:
  • нет ←
  • да
Если установлено в true, будет использоваться частная зона, соответствующая запрошенному имени в домене, если имеются как публичные, так и частные зоны.
По умолчанию используется публичная зона.
profile
строка
Использует профиль boto. Работает только с boto >= 2.24.0.
Использование profile переопределяет aws_access_key, aws_secret_key и security_token. Поддержка одновременной передачи profile вместе с ними устарела.
aws_access_key, aws_secret_key и security_token будут взаимоисключающими с profile после 2022-06-01.

Псевдонимы: aws_profile
record
строка / обязательный
Полная запись DNS для создания или удаления.
region
строка
Только для записей ресурсов, основанных на задержке. Среди записей ресурсов с одинаковой комбинацией имени DNS и типа значение, определяющее регион, с которым он должен быть связан для маршрутизации по задержкам.
retry_interval
целое число
Значение по умолчанию:
500
В случае, если Route 53 все еще обрабатывает предыдущий запрос, этот модуль будет ждать и попробует снова через указанное количество секунд. Если у вас много доменных имен, значение по умолчанию в 500 секунд может быть слишком большим.
security_token
строка
Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN.
Если задан параметр profile, этот параметр игнорируется.
Передача параметров security_token и profile одновременно устарела и после 2022-06-01 эти параметры будут взаимоисключающими.

Псевдонимы: aws_security_token, access_token
state
строка / обязательный
    Варианты:
  • present
  • absent
  • get
  • create
  • delete
Определяет состояние ресурса записи. Начиная с Ansible 2.4, параметр command по умолчанию изменен на state, и добавлены варианты present и absent, но command по-прежнему работает.

Псевдонимы: command
ttl
целое число
Значение по умолчанию:
3600
TTL (в секундах) для новой записи.
type
строка / обязательный
    Варианты:
  • A
  • CNAME
  • MX
  • AAAA
  • TXT
  • PTR
  • SRV
  • SPF
  • CAA
  • NS
  • SOA
Тип записи DNS для создания.
validate_certs
boolean
    Варианты:
  • нет
  • да ←
При установке в «нет» SSL-сертификаты не будут проверяться для версий boto >= 2.6.0.
value
список / элементы=строка
Новое значение при создании записи DNS. Разрешены списки YAML или значения через запятые для не-псевдонимных записей.
При удалении записи все значения записи должны быть указаны, иначе Route 53 не удалит её.
vpc_id
строка
При использовании совместно с private_zone: true, это позволит изменять только записи в частной зоне размещения, присоединённой к этой VPC.
Это позволяет иметь несколько частных зон размещения, все с одинаковым именем, присоединённых к различным VPC.
wait
boolean
    Варианты:
  • нет ←
  • да
Подождать, пока изменения не будут реплицированы на все сервера DNS Amazon Route 53.
wait_timeout
целое число
Значение по умолчанию:
300
Время ожидания репликации изменений в секундах.
weight
целое число
Только для взвешенных записей ресурсов. Среди записей ресурсов с одинаковой комбинацией имени DNS и типа значение, определяющее долю трафика для текущей записи ресурса, которая маршрутизируется к связанному местоположению.
zone
строка
Домен DNS для изменения.
Требуется, если не указан параметр hosted_zone_id.

Примечания

Примечание

  • Если параметры не заданы в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета AWS_URL или EC2_URL, AWS_PROFILE или AWS_DEFAULT_PROFILE, AWS_ACCESS_KEY_ID или AWS_ACCESS_KEY или EC2_ACCESS_KEY, AWS_SECRET_ACCESS_KEY или AWS_SECRET_KEY или EC2_SECRET_KEY, AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN, AWS_REGION или EC2_REGION, AWS_CA_BUNDLE
  • Ansible использует файл конфигурации boto (обычно ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
  • AWS_REGION или EC2_REGION обычно используются для указания региона AWS, когда это необходимо, но это также можно настроить в файле конфигурации boto

Примеры

- name: Add new.foo.com as an A record with 3 IPs and wait until the changes have been replicated
  community.aws.route53:
    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
    wait: yes

- name: Update new.foo.com as an A record with a list of 3 IPs and wait until the changes have been replicated
  community.aws.route53:
    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
    wait: yes

- name: Retrieve the details for new.foo.com
  community.aws.route53:
    state: get
    zone: foo.com
    record: new.foo.com
    type: A
  register: rec

- name: Delete new.foo.com A record using the results from the get command
  community.aws.route53:
    state: absent
    zone: foo.com
    record: "{{ rec.set.record }}"
    ttl: "{{ rec.set.ttl }}"
    type: "{{ rec.set.type }}"
    value: "{{ rec.set.value }}"

# Add an AAAA record.  Note that because there are colons in the value
# that the IPv6 address must be quoted. Also shows using the old form command=create.
- name: Add an AAAA record
  community.aws.route53:
    command: create
    zone: foo.com
    record: localhost.foo.com
    type: AAAA
    ttl: 7200
    value: "::1"

# For more information on SRV records see:
# https://en.wikipedia.org/wiki/SRV_record
- name: Add a SRV record with multiple fields for a service on port 22222
  community.aws.route53:
    state: present
    zone: foo.com
    record: "_example-service._tcp.foo.com"
    type: SRV
    value: "0 0 22222 host1.foo.com,0 0 22222 host2.foo.com"

# Note that TXT and SPF records must be surrounded
# by quotes when sent to Route 53:
- name: Add a TXT record.
  community.aws.route53:
    state: present
    zone: foo.com
    record: localhost.foo.com
    type: TXT
    ttl: 7200
    value: '"bar"'

- name: Add an alias record that points to an Amazon ELB
  community.aws.route53:
    state: present
    zone: foo.com
    record: elb.foo.com
    type: A
    value: "{{ elb_dns_name }}"
    alias: True
    alias_hosted_zone_id: "{{ elb_zone_id }}"

- name: Retrieve the details for elb.foo.com
  community.aws.route53:
    state: get
    zone: foo.com
    record: elb.foo.com
    type: A
  register: rec

- name: Delete an alias record using the results from the get command
  community.aws.route53:
    state: absent
    zone: foo.com
    record: "{{ rec.set.record }}"
    ttl: "{{ rec.set.ttl }}"
    type: "{{ rec.set.type }}"
    value: "{{ rec.set.value }}"
    alias: True
    alias_hosted_zone_id: "{{ rec.set.alias_hosted_zone_id }}"

- name: Add an alias record that points to an Amazon ELB and evaluates it health
  community.aws.route53:
    state: present
    zone: foo.com
    record: elb.foo.com
    type: A
    value: "{{ elb_dns_name }}"
    alias: True
    alias_hosted_zone_id: "{{ elb_zone_id }}"
    alias_evaluate_target_health: True

- name: Add an AAAA record with Hosted Zone ID
  community.aws.route53:
    state: present
    zone: foo.com
    hosted_zone_id: Z2AABBCCDDEEFF
    record: localhost.foo.com
    type: AAAA
    ttl: 7200
    value: "::1"

- name: Use a routing policy to distribute traffic
  community.aws.route53:
    state: present
    zone: foo.com
    record: www.foo.com
    type: CNAME
    value: host1.foo.com
    ttl: 30
    # Routing policy
    identifier: "host1@www"
    weight: 100
    health_check: "d994b780-3150-49fd-9205-356abdd42e75"

- name: Add a CAA record (RFC 6844)
  community.aws.route53:
    state: present
    zone: example.com
    record: example.com
    type: CAA
    value:
      - 0 issue "ca.example.net"
      - 0 issuewild ";"
      - 0 iodef "mailto:security@example.com"

Значения возврата

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

Ключ Возвращаемое значение Описание
nameservers
список / элементы=строка
при состоянии 'get'
Серверы имен, связанные с зоной.

Пример:
['ns-1036.awsdns-00.org.', 'ns-516.awsdns-00.net.', 'ns-1504.awsdns-00.co.uk.', 'ns-1.awsdns-00.com.']
set
сложный
при состоянии 'get'
Информация, специфичная для записи ресурса.

alias
булево
всегда
Является ли это псевдонимом.

failover
строка
всегда
Является ли эта запись ресурса первичной или вторичной.

Пример:
PRIMARY
health_check
строка
всегда
Проверка работоспособности, связанная с этой записью.

identifier
строка
всегда
Идентификатор, который отличает множество записей ресурсов с одинаковым сочетанием имени DNS и типа.

record
строка
всегда
Имя домена для набора записей.

Пример:
new.foo.com.
region
строка
всегда
Регион, с которым эта запись должна быть связана для маршрутизации на основе задержки.

Пример:
us-west-2
ttl
строка
всегда
Время жизни кэша записи ресурса.

Пример:
3600
type
строка
всегда
Тип набора записей ресурсов.

Пример:
A
value
строка
всегда
Значение записи.

Пример:
52.43.18.27
values
список / элементы=строка
всегда
Значения записей.

Пример:
['52.43.18.27']
weight
строка
всегда
Вес записи.

Пример:
3
zone
строка
всегда
Зона, к которой относится этот набор записей.

Пример:
foo.bar.com.


Авторы

  • Bruce Pennypacker (@bpennypacker)
  • Mike Buzzetti (@jimbydamonk)

© 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/aws/route53_module.html

Spec-Zone.ru

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