route53 – добавление или удаление записей в DNS-сервисе Amazons Route53
Описание
- Создаёт и удаляет записи DNS в сервисе Amazons Route53
Требования
Ниже приведены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| alias boolean |
| Указывает, является ли запись псевдонимом. |
| alias_evaluate_target_health boolean добавлено в 2.1 |
| Определяет, нужно ли оценивать состояние здоровья целевого объекта псевдонима. Полезно для псевдонимов балансировщиков нагрузки Elastic Load Balancers. |
| alias_hosted_zone_id - | Идентификатор размещённой зоны. | |
| aws_access_key строка | Ключ доступа AWS. Если не задан, используется значение переменной среды AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. псевдонимы: ec2_access_key, access_key | |
| aws_secret_key строка | Секретный ключ AWS. Если не задан, используется значение переменной среды AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. псевдонимы: ec2_secret_key, secret_key | |
| debug_botocore_endpoint_logs boolean добавлено в 2.8 |
| Использовать регистратор botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие», произведённых во время задачи, выводить множество в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода общего списка, выполненного во время выполнения плейбука. Также можно использовать переменную среды ANSIBLE_DEBUG_BOTOCORE_LOGS. |
| ec2_url строка | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если не используется регион. Если не задан, используется значение переменной среды EC2_URL, если она существует. | |
| failover - добавлено в 2.0 | Только записи ресурсов failover. Указывает, является ли эта запись первичной или вторичной. | |
| health_check - добавлено в 2.0 | Проверка состояния для ассоциации с этой записью | |
| hosted_zone_id - добавлено в 2.0 | Идентификатор зоны размещения DNS-зоны для изменения. | |
| identifier - добавлено в 2.0 | Обязательно для зон с балансировкой по весам, задержке и failover. Идентификатор, отличающий несколько записей ресурсов с одинаковым сочетанием имени DNS и типа. | |
| overwrite boolean |
| Указывает, следует ли перезаписывать существующую запись при создании, если значения не совпадают. |
| private_zone boolean |
| Если установлено значение yes, будет использоваться частная зона, соответствующая запрошенному имени в домене, если существуют как публичные, так и частные зоны. По умолчанию используется публичная зона. |
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| record - / обязательно | Полная запись DNS для создания или удаления. | |
| region - добавлено в 2.0 | Только для записей ресурсов с балансировкой по задержке. Среди записей ресурсов с одинаковым сочетанием имени DNS и типа, значение, определяющее регион, к которому должен быть связан этот ресурс для маршрутизации по задержке. | |
| retry_interval - | По умолчанию: 500 | В случае, если Route53 все ещё обрабатывает предыдущий запрос, этот модуль будет ждать и повторит попытку через заданное количество секунд. Если у вас много доменных имён, значение по умолчанию 500 секунд может быть слишком большим. |
| security_token строка | Токен безопасности AWS STS. Если не задан, используется значение переменной среды AWS_SECURITY_TOKEN или EC2_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 или несколько значений через запятую для записей, не являющихся псевдонимами. При удалении записи должны быть указаны все значения записи, иначе Route53 не удалит её. | |
| vpc_id - добавлено в 2.0 | При использовании вместе с private_zone: true, это позволит изменять только записи в частной зоне размещения, прикреплённой к этой VPC. Это позволяет иметь несколько частных зон размещения, все с одинаковым именем, прикреплённых к разным VPC. | |
| wait boolean добавлено в 2.1 |
| Ожидать, пока изменения не будут реплицированы на все DNS-серверы Amazon Route 53. |
| wait_timeout - добавлено в 2.1 | По умолчанию: 300 | Время ожидания репликации изменений в секундах. |
| weight - добавлено в 2.0 | Только для записей ресурсов с балансировкой по весам. Среди записей ресурсов с одинаковым сочетанием имени DNS и типа, значение, определяющее какую часть трафика текущей записи ресурса направляется в соответствующее местоположение. | |
| zone - / обязательно | DNS-зона для изменения. |
Примечания
Примечание
- Если параметры не заданы в модуле, следующие переменные среды могут быть использованы в порядке убывания приоритета
AWS_URLилиEC2_URL,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 - Ansible использует файл конфигурации boto (обычно ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
-
AWS_REGIONилиEC2_REGIONобычно используются для указания региона AWS, когда это необходимо, но это также можно настроить в файле конфигурации boto
Примеры
# Add new.foo.com as an A record with 3 IPs and wait until the changes have been replicated
- 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
# Update new.foo.com as an A record with a list of 3 IPs and wait until the changes have been replicated
- 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
# Retrieve the details for new.foo.com
- route53:
state: get
zone: foo.com
record: new.foo.com
type: A
register: rec
# Delete new.foo.com A record using the results from the get command
- 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.
- route53:
command: create
zone: foo.com
record: localhost.foo.com
type: AAAA
ttl: 7200
value: "::1"
# Add a SRV record with multiple fields for a service on port 22222
# For more information on SRV records see:
# https://en.wikipedia.org/wiki/SRV_record
- 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"
# Add a TXT record. Note that TXT and SPF records must be surrounded
# by quotes when sent to Route 53:
- route53:
state: present
zone: foo.com
record: localhost.foo.com
type: TXT
ttl: 7200
value: '"bar"'
# Add an alias record that points to an Amazon ELB:
- 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 }}"
# Retrieve the details for elb.foo.com
- route53:
state: get
zone: foo.com
record: elb.foo.com
type: A
register: rec
# Delete an alias record using the results from the get command
- 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 }}"
# Add an alias record that points to an Amazon ELB and evaluates it health:
- 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
# Add an AAAA record with Hosted Zone ID.
- route53:
state: present
zone: foo.com
hosted_zone_id: Z2AABBCCDDEEFF
record: localhost.foo.com
type: AAAA
ttl: 7200
value: "::1"
# Use a routing policy to distribute traffic:
- 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"
# Add a CAA record (RFC 6844):
- 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 NoneType | всегда | | |
| health_check NoneType | всегда | проверка работоспособности, связанная с этой записью | |
| identifier NoneType | всегда | | |
| record строка | всегда | доменное имя для набора записей Пример: new.foo.com. | |
| region None | всегда | | |
| ttl строка | всегда | TTL кэша записей ресурса Пример: 3600 | |
| type строка | всегда | тип набора записей Пример: A | |
| value строка | всегда | значение Пример: 52.43.18.27 | |
| values список | всегда | значения Пример: ['52.43.18.27'] | |
| weight строка | всегда | вес записи Пример: 3 | |
| zone строка | всегда | зона, к которой принадлежит этот набор записей Пример: foo.bar.com. | |
Статус
- Для этого модуля гарантированы изменения интерфейса, не нарушающие обратную совместимость. [stableinterface]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- 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.8/modules/route53_module.html