route53 - добавление или удаление записей в DNS-сервисе Amazon Route53
Новая версия с 1.3.
Обзор
- Создает и удаляет записи DNS в сервисе Amazon Route53
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| alias (добавлен в 1.9) |
нет | Указывает, является ли эта запись псевдонимом. |
| alias_evaluate_target_health (добавлен в 2.1) | Значение по умолчанию: нет | Определяет, следует ли оценивать состояние здоровья целевого объекта псевдонима. Полезно для псевдонимов балансировщиков нагрузки Elastic Load Balancing. |
| alias_hosted_zone_id (добавлен в 1.9) | Значение по умолчанию: None | Идентификатор размещенной зоны. |
| aws_access_key | Значение по умолчанию: None | Ключ доступа AWS. Если не задан, используется значение переменной среды AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Псевдонимы: ec2_access_key, access_key |
| aws_secret_key | Значение по умолчанию: None | Секретный ключ AWS. Если не задан, используется значение переменной среды AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Псевдонимы: ec2_secret_key, secret_key |
| ec2_url | Значение по умолчанию: None | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не указан, используется значение переменной среды EC2_URL, если она существует. |
| failover (добавлен в 2.0) | Значение по умолчанию: None | Только для наборов записей ресурса с failover. Указывает, является ли это основной или резервной записью набора ресурса. Допустимые значения: PRIMARY и SECONDARY |
| health_check (добавлен в 2.0) | Значение по умолчанию: None | Проверка работоспособности для ассоциации с этой записью |
| hosted_zone_id (добавлен в 2.0) | Значение по умолчанию: None | Идентификатор зоны размещения DNS-зоны для модификации |
| identifier (добавлен в 2.0) | Значение по умолчанию: None | Требуется только для наборов записей Weighted, основанных на задержке и failover. Идентификатор, отличающий несколько наборов записей ресурса, имеющих одинаковую комбинацию имени DNS и типа. |
| overwrite | Значение по умолчанию: None | Указывает, должна ли существующая запись перезаписываться при создании, если значения не совпадают |
| private_zone (добавлен в 1.9) | Значение по умолчанию: нет | Если установлено в true, будет использоваться частная зона, соответствующая запрошенному имени в домене, если существуют как публичные, так и частные зоны. По умолчанию используется публичная зона. |
| profile (добавлен в 1.6) | Значение по умолчанию: None | Использует профиль boto. Работает только с boto >= 2.24.0. |
| record обязательно | Полная запись DNS для создания или удаления | |
| region (добавлен в 2.0) | Значение по умолчанию: None | Только для наборов записей, основанных на задержке. Среди наборов записей ресурса, имеющих одинаковую комбинацию имени DNS и типа, значение, определяющее регион, с которым должна быть связана эта запись для маршрутизации по задержке. |
| retry_interval | Значение по умолчанию: 500 | В случае, если Route53 все еще обрабатывает предыдущий запрос, этот модуль будет ждать и повторит попытку через заданное количество секунд. Если у вас много доменных имен, значение по умолчанию в 500 секунд может быть слишком большим. |
| security_token (добавлен в 1.6) | Значение по умолчанию: None | Токен безопасности 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 (добавлен в 1.5) |
| При установке в "нет", сертификаты SSL не будут проверяться для версий boto >= 2.6.0. |
| value | Значение по умолчанию: None | Новое значение при создании записи DNS. Разрешены списки YAML или значения, разделенные запятыми, для записей, не являющихся псевдонимами. При удалении записи должны быть указаны все значения для записи, иначе Route53 не удалит ее. |
| vpc_id (добавлен в 2.0) | Значение по умолчанию: None | При использовании в сочетании с private_zone: true, это позволит изменять только записи в частной размещенной зоне, прикрепленной к этой VPC. Это позволяет иметь несколько частных размещенных зон, все с одинаковым именем, прикрепленных к различным VPC. |
| wait (добавлен в 2.1) | Значение по умолчанию: нет | Подождать, пока изменения не будут реплицированы на все серверы Amazon Route 53 DNS. |
| wait_timeout (добавлен в 2.1) | Значение по умолчанию: 300 | Время ожидания репликации изменений в секундах. |
| weight (добавлен в 2.0) | Значение по умолчанию: None | Только для наборов записей с весами. Среди наборов записей ресурса, имеющих одинаковую комбинацию имени 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' | информация, специфичная для записи ресурса | |
| health_check NoneType | всегда | health_check, связанный с этой записью | |
| weight строка | всегда | вес записи Пример: 3 | |
| zone строка | всегда | зона, к которой принадлежит этот набор записей Пример: foo.bar.com. | |
| alias bool | всегда | является ли это псевдонимом | |
| failover NoneType | всегда | | |
| value строка | всегда | значение Пример: 52.43.18.27 | |
| record строка | всегда | имя домена для набора записей Пример: new.foo.com. | |
| values список | всегда | значения Пример: ['52.43.18.27'] | |
| ttl строка | всегда | значение TTL кэша записи ресурса Пример: 3600 | |
| identifier NoneType | всегда | | |
| type строка | всегда | тип набора записей Пример: A | |
| region None | всегда | | |
Статус
Этот модуль помечен как stableinterface, что означает, что поддерживающие этот модуль гарантируют, что не будут вноситься несовместимые изменения в интерфейс.
Автор
- 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.5/modules/route53_module.html