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
Параметры
| Parameter | Choices/Defaults | Comments |
|---|---|---|
| alias boolean |
| Указывает, является ли это записью псевдонима. По умолчанию false. |
| alias_evaluate_target_health boolean |
| Необходимо ли оценивать состояние целевого объекта псевдонима. Полезно для псевдонимов для Elastic Load Balancers. |
| 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. aliases: ec2_access_key, access_key | |
| aws_ca_bundle path | Расположение пакета CA, используемого при проверке сертификатов SSL. Используется только для модулей на основе boto3. Примечание: Пакет CA считывается на стороне «модуля» и может потребоваться явное копирование с контроллера, если он не запущен локально. | |
| aws_config dictionary | Словарь для изменения конфигурации botocore. Параметры можно найти по адресу https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. Только ключ 'user_agent' используется для модулей boto. См. http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto для получения дополнительной информации о конфигурации boto. | |
| aws_secret_key string | Секретный ключ AWS. Если не установлен, используется значение переменной среды AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Если установлен параметр profile, этот параметр игнорируется. Передача параметров aws_secret_key и profile одновременно устарела, и параметры будут сделаны взаимоисключающими после 2022-06-01. aliases: 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 string | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль будет использовать конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не установлен, используется значение переменной среды EC2_URL (если есть). aliases: aws_endpoint_url, endpoint_url | |
| failover string |
| Только наборы записей ресурсов отработки отказа. Является ли это первичным или вторичным набором записей ресурсов. Допустимые значения — PRIMARY и SECONDARY |
| health_check string | Проверка работоспособности для ассоциации с этой записью | |
| hosted_zone_id string | Идентификатор зоны размещения DNS-зоны для изменения. Это обязательный параметр, если параметр zone не указан. | |
| identifier string | Должен быть указан только для взвешенных, основанных на задержке и наборов записей ресурсов отработки отказа. Идентификатор, который отличает несколько наборов записей ресурсов, имеющих одинаковую комбинацию имени DNS и типа. | |
| overwrite boolean |
| Следует ли перезаписывать существующую запись при создании, если значения не совпадают. |
| private_zone boolean |
| Если установлено в true, будет использоваться частная зона, соответствующая запрошенному имени в домене, если есть как общедоступные, так и частные зоны.По умолчанию используется общедоступная зона. |
| profile string | Использует профиль 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. aliases: aws_profile | |
| record string / required | Полная DNS-запись для создания или удаления. | |
| region string | Только наборы записей ресурсов на основе задержки. Среди наборов записей ресурсов, имеющих одинаковую комбинацию имени DNS и типа, значение, определяющее, с каким регионом это следует связать для маршрутизации на основе задержки. | |
| retry_interval integer | Default: 500 | В случае, если Route 53 все еще обслуживает предыдущий запрос, этот модуль будет ждать и попытается снова через столько секунд. Если у вас много доменных имен, значение по умолчанию 500 секунд может быть слишком большим. |
| security_token string | Маркер безопасности AWS STS. Если не установлен, используется значение переменной среды AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если установлен параметр profile, этот параметр игнорируется. Передача параметров security_token и profile одновременно устарела, и параметры будут сделаны взаимоисключающими после 2022-06-01. aliases: aws_security_token, access_token | |
| state string / required |
| Задает состояние записи ресурса. Начиная с Ansible 2.4, параметр command изменен на state по умолчанию, и добавлены варианты present и absent, но command также работает.aliases: command |
| ttl integer | Default: 3600 | Время жизни (TTL), в секундах, для новой записи. |
| type string / required |
| Тип DNS-записи для создания. |
| validate_certs boolean |
| При значении «нет» сертификаты SSL не будут проверяться для версий boto >= 2.6.0. |
| value list / elements=string | Новое значение при создании DNS-записи. Допускаются списки YAML или несколько значений, разделенных запятыми, для записей, не являющихся псевдонимами. При удалении записи должны быть указаны все значения для записи, иначе Route 53 не удалит ее. | |
| vpc_id string | При использовании вместе с private_zone: true, это будет изменять только записи в частной зоне размещения, присоединенной к этой VPC. Это позволяет иметь несколько частных зон размещения с одинаковым именем, присоединенных к разным VPC. | |
| wait boolean |
| Дождитесь, пока изменения не будут реплицированы на все DNS-серверы Amazon Route 53. |
| wait_timeout integer | Default: 300 | Сколько ждать репликации изменений, в секундах. |
| weight integer | Только взвешенные наборы записей ресурсов. Среди наборов записей ресурсов, имеющих одинаковую комбинацию имени DNS и типа, значение, определяющее, какая часть трафика для текущего набора записей ресурсов направляется в связанное местоположение. | |
| zone string | 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 строка | всегда | 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/aws/route53_module.html