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 строка |
| Только для записей ресурсов 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 строка / обязательный |
| Определяет состояние ресурса записи. Начиная с Ansible 2.4, параметр command по умолчанию изменен на state, и добавлены варианты present и absent, но command по-прежнему работает.Псевдонимы: command |
| ttl целое число | Значение по умолчанию: 3600 | TTL (в секундах) для новой записи. |
| type строка / обязательный |
| Тип записи 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