route53 - добавление или удаление записей в службе DNS Amazons Route53
Новое в версии 1.3.
Описание
- Создаёт и удаляет записи DNS в службе DNS Amazons Route53
Требования (для хоста, на котором выполняется модуль)
- python >= 2.6
- boto
Параметры
| параметр | обязателен | по умолчанию | выбор | комментарии |
|---|---|---|---|---|
| alias (добавлен в 1.9)
| нет |
| Указывает, является ли это записью alias. | |
| alias_evaluate_target_health (добавлен в 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)
| нет | Должен быть указан только для наборов ресурсов Weighted, latency-based и failover. Идентификатор, который отличает несколько записей ресурсов с одинаковым сочетанием имени DNS и типа. | ||
| overwrite | нет | Перезаписывать ли существующую запись при создании, если значения не совпадают | ||
| private_zone (добавлен в 1.9)
| нет | Если установлено в true, будет использоваться частная зона, соответствующая запрошенному имени в домене, если есть как публичная, так и частная зоны. По умолчанию используется публичная зона. | ||
| 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 (добавлен в 1.5)
| нет | да |
| Если установлено в "нет", сертификаты SSL не будут проверяться для версий boto >= 2.6.0. |
| value | нет | Новое значение при создании записи DNS. Разрешены списки YAML или несколько значений через запятую для записей, не являющихся alias. При удалении записи все значения для записи должны быть указаны, иначе Route53 не удалит её. | ||
| vpc_id (добавлен в 2.0)
| нет | При использовании вместе с private_zone: true, это позволит изменять только записи в частной зонированной области, прикреплённой к этому VPC. Это позволяет иметь несколько частных зонированных областей с одинаковым именем, прикреплённых к различным VPC. | ||
| wait (добавлен в 2.1)
| нет | Ожидание, пока изменения не будут реплицированы на все серверы Amazon Route 53 DNS. | ||
| wait_timeout (добавлен в 2.1)
| нет | 300 | Время ожидания репликации изменений в секундах. | |
| weight (добавлен в 2.0)
| нет | Только для наборов ресурсов Weighted. Среди наборов записей ресурсов с одинаковым сочетанием имени DNS и типа, значение, которое определяет, какая часть трафика для текущего набора записей ресурсов маршрутизируется в связанное местоположение. | ||
| zone | да | DNS-зона для изменения |
Примеры
# 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"
Примечания
Примечание
- Если параметры не заданы в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета
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
Статус
Этот модуль помечен как stableinterface, что означает, что авторы модуля гарантируют, что не будут вноситься несовместимые с обратной совместимостью изменения интерфейса.
Для получения помощи в разработке модулей, если вы заинтересованы в этом, пожалуйста, ознакомьтесь с Информация о сообществе и внесение вклада, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/route53_module.html