route53 - добавление или удаление записей в службу DNS Amazons Route53
Новая версия с 1.3.
Обзор
- Создаёт и удаляет записи DNS в службе Amazons Route53
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| alias bool (добавлено в 1.9) |
| Указывает, является ли это записью alias. |
| alias_evaluate_target_health bool (добавлено в 2.1) |
| Определяет, следует ли оценивать состояние здоровья целевого alias. Полезно для alias с Elastic Load Balancers. |
| 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) | Требуется только для весовых, основанных на задержке и failover записей ресурса. Идентификатор, который отличает несколько записей ресурса, которые имеют одинаковую комбинацию имени DNS и типа. | |
| overwrite | Определяет, следует ли перезаписывать существующую запись при создании, если значения не совпадают | |
| private_zone bool (добавлено в 1.9) |
| Если установлено в yes, будет использоваться частная зона, соответствующая запрошенному имени в домене, если есть как публичные, так и частные зоны. По умолчанию используется публичная зона. |
| profile (добавлено в 1.6) | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| record обязательно | Полная запись DNS для создания или удаления | |
| region (добавлено в 2.0) | Только для записей ресурса, основанных на задержке. Среди записей ресурса, которые имеют одинаковую комбинацию имени 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 bool (добавлено в 1.5) |
| При установке в "нет", сертификаты SSL не будут проверятся для boto версий >= 2.6.0. |
| value | Новое значение при создании записи DNS. Разрешён список YAML или несколько значений через запятую для записей, не являющихся alias. При удалении записи все значения записи должны быть указаны, иначе Route53 не удалит её. | |
| vpc_id (добавлено в 2.0) | При использовании в сочетании с private_zone: true, это позволит изменять только записи в частной размещенной зоне, прикрепленной к этой VPC. Это позволяет иметь несколько частных размещенных зон, все с одинаковым именем, прикреплённых к различным VPC. | |
| wait bool (добавлено в 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), если учетные данные не предоставлены. См. http://boto.readthedocs.org/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 bool | всегда | является ли это псевдонимом | |
| failover NoneType | всегда | | |
| health_check NoneType | всегда | проверка работоспособности, связанная с этой записью | |
| identifier NoneType | всегда | | |
| record строка | всегда | доменное имя для набора записей Пример: new.foo.com. | |
| region None | всегда | | |
| ttl строка | всегда | время жизни кэша записи ресурса Пример: 3600 | |
| type строка | всегда | тип набора записей Пример: A | |
| value строка | всегда | значение Пример: 52.43.18.27 | |
| values список | всегда | значения Пример: ['52.43.18.27'] | |
| weight строка | всегда | вес записи Пример: 3 | |
| zone строка | всегда | зона, к которой принадлежит этот набор записей Пример: foo.bar.com. | |
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики этого модуля гарантируют, что не будут вноситься несовместимые изменения интерфейса.
Техническое обслуживание
Этот модуль помечен как community, что означает, что он поддерживается сообществом Ansible. Дополнительную информацию см. в разделе Техническое обслуживание и поддержка модулей.
Список других модулей, также поддерживаемых сообществом Ansible, см. в разделе здесь.
Автор
- 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.6/modules/route53_module.html