route53 – добавление или удаление записей в DNS-сервисе Amazons Route53
Новая версия с 1.3.
Краткое описание
- Создаёт и удаляет DNS-записи в сервисе Amazons Route53
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| alias boolean добавлен в 1.9 |
| Указывает, является ли это записью псевдонима. |
| alias_evaluate_target_health boolean добавлен в 2.1 |
| Определяет, нужно ли оценивать состояние целевого объекта псевдонима. Полезно для псевдонимов балансировщиков нагрузки Elastic. |
| alias_hosted_zone_id - добавлен в 1.9 | Идентификатор зоны размещения. | |
| 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 | |
| ec2_url - | URL для подключения к EC2 или вашей облачной системе Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если она есть. | |
| failover - добавлен в 2.0 | Только для наборов записей ресурсов failover. Определяет, является ли это основной или резервной записью ресурса. Допустимые значения PRIMARY и SECONDARY | |
| health_check - добавлен в 2.0 | Проверка состояния для ассоциации с этой записью | |
| hosted_zone_id - добавлен в 2.0 | Идентификатор зоны размещения DNS-зоны, которую нужно изменить | |
| identifier - добавлен в 2.0 | Необходимо указывать только для наборов записей ресурсов Weighted, latency-based и failover. Идентификатор, отличающий несколько наборов записей ресурсов, которые имеют одинаковую комбинацию имени DNS и типа. | |
| overwrite - | Указать, должна ли при создании перезаписываться существующая запись, если значения не совпадают | |
| private_zone boolean добавлен в 1.9 |
| Если установлено значение yes, будет использоваться частная зона, соответствующая запрошенному имени в домене, если есть как публичная, так и частная зоны. По умолчанию используется публичная зона. |
| profile - добавлен в 1.6 | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| record - / обязательно | Полная запись DNS для создания или удаления | |
| region - добавлен в 2.0 | Только для наборов записей ресурсов latency-based. Среди наборов записей ресурсов с одинаковым именем DNS и типом, значение, определяющее, с какой областью должна быть связана эта запись для маршрутизации на основе задержки | |
| retry_interval - | По умолчанию: 500 | В случае, если Route53 еще обслуживает предыдущий запрос, этот модуль будет ждать и повторит попытку через указанное количество секунд. Если у вас много доменных имен, значение по умолчанию в 500 секунд может быть слишком большим. |
| security_token - добавлен в 1.6 | Токен безопасности 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 добавлен в 1.5 |
| Если установлено значение "нет", сертификаты 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 | Только для наборов записей ресурсов Weighted. Среди наборов записей ресурсов с одинаковым именем 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 <mike.buzzetti@gmail.com>
Подсказка
Если вы заметите какие-либо проблемы в этом документе, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/route53_module.html