ec2_eip — управляет адресами EC2 elastic IP (EIP).
Новая версия с 1.4.
Обзор
- Этот модуль может выделять или освобождать EIP.
- Этот модуль может ассоциировать/диссоциировать EIP с экземплярами или сетевыми интерфейсами.
Требования (к хосту, на котором выполняется модуль)
- python >= 2.6
- boto
Параметры
| параметр | обязательно | по умолчанию | варианты | комментарии |
|---|---|---|---|---|
| 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 | ||
| device_id (добавлено в 2.0)
| нет | Идентификатор устройства для EIP. Может быть идентификатором EC2 Instance или Elastic Network Interface (ENI). псевдонимы: instance_id | ||
| ec2_url | нет | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если таковая есть. | ||
| in_vpc (добавлено в 1.4)
| нет | выделить EIP внутри VPC или нет | ||
| private_ip_address (добавлено в 2.3)
| нет | None | Основной или дополнительный частный IP-адрес, который необходимо ассоциировать с Elastic IP-адресом. | |
| profile (добавлено в 1.6)
| нет | Использует профиль boto. Работает только с boto >= 2.24.0. | ||
| public_ip | нет | IP-адрес ранее выделенного EIP. Если задан и указано устройство, EIP ассоциируется с устройством. Если отсутствует и указано устройство, EIP диссоциируется от устройства. псевдонимы: ip | ||
| region | нет | AWS регион для использования. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION, если таковая есть. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
псевдонимы: aws_region, ec2_region | ||
| release_on_disassociation (добавлено в 2.0)
| нет | автоматически ли освобождать EIP при диссоциации | ||
| reuse_existing_ip_allowed (добавлено в 1.6)
| нет | Использовать существующий EIP, не связанный с устройством (если доступен), вместо выделения нового. | ||
| security_token (добавлено в 1.6)
| нет | Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. псевдонимы: access_token | ||
| state | нет | present |
| Если present, выделяет EIP или ассоциирует существующий EIP с устройством. Если absent, диссоциирует EIP от устройства и, при необходимости, освобождает его. |
| validate_certs (добавлено в 1.5)
| нет | yes |
| Если "no", сертификаты SSL не будут проверены для версий boto >= 2.6.0. |
Примеры
# Note: These examples do not set authentication details, see the AWS Guide for details.
- name: associate an elastic IP with an instance
ec2_eip:
device_id: i-1212f003
ip: 93.184.216.119
- name: associate an elastic IP with a device
ec2_eip:
device_id: eni-c8ad70f3
ip: 93.184.216.119
- name: disassociate an elastic IP from an instance
ec2_eip:
device_id: i-1212f003
ip: 93.184.216.119
state: absent
- name: disassociate an elastic IP with a device
ec2_eip:
device_id: eni-c8ad70f3
ip: 93.184.216.119
state: absent
- name: allocate a new elastic IP and associate it with an instance
ec2_eip:
device_id: i-1212f003
- name: allocate a new elastic IP without associating it to anything
ec2_eip:
state: present
register: eip
- name: output the IP
debug:
msg: "Allocated IP is {{ eip.public_ip }}"
- name: another way of allocating an elastic IP without associating it to anything
ec2_eip:
state: 'present'
- name: provision new instances with ec2
ec2:
keypair: mykey
instance_type: c1.medium
image: ami-40603AD1
wait: yes
group: webserver
count: 3
register: ec2
- name: associate new elastic IPs with each of the instances
ec2_eip:
device_id: "{{ item }}"
with_items: "{{ ec2.instance_ids }}"
- name: allocate a new elastic IP inside a VPC in us-west-2
ec2_eip:
region: us-west-2
in_vpc: yes
register: eip
- name: output the IP
debug:
msg: "Allocated IP inside a VPC is {{ eip.public_ip }}"
Примечания
Примечание
- Этот модуль вернёт
public_ipпри успешном выполнении, содержащее IP-адрес, ассоциированный с устройством. - Возможна задержка между временем назначения EIP и временем, когда экземпляр облака станет доступным по новому адресу. Используйте wait_for и pause, чтобы приостановить дальнейшее выполнение playbook до тех пор, пока экземпляр не станет доступным, если необходимо.
- Этот модуль возвращает несколько статусов изменения при диссоциации или освобождении. Он возвращает общий статус, основанный на любых произошедших изменениях. Он также возвращает отдельные статусы изменений для диссоциации и освобождения.
- Если параметры не заданы в модуле, можно использовать следующие переменные среды в порядке убывания приоритета
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/ec2_eip_module.html