Spec-Zone.ru › Ansible 2.8

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
- / обязательно
    Варианты:
  • present
  • absent
  • get
  • create
  • delete
Определяет состояние ресурса записи. Начиная с Ansible 2.4, опция command изменена на state по умолчанию, и добавлены варианты «present» и «absent», но command по-прежнему работает.

псевдонимы: command
ttl
-
По умолчанию:
"3600 (один час)"
Время жизни (TTL) новой записи.
type
- / обязательно
    Варианты:
  • A
  • CNAME
  • MX
  • AAAA
  • TXT
  • PTR
  • SRV
  • SPF
  • CAA
  • NS
  • SOA
Тип 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API