community.aws.ec2_eip – управляет адресами эластичных IP-адресов EC2 (EIP).
Примечание
Этот плагин входит в коллекцию community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Для использования в playbook укажите: community.aws.ec2_eip.
Введено в версии 1.0.0: из community.aws
Обзор
- Этот модуль может выделять или освобождать EIP.
- Этот модуль может ассоциировать/диссоциировать EIP с экземплярами или сетевыми интерфейсами.
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| allow_reassociation boolean |
| Укажите этот параметр, чтобы разрешить повторную привязку адреса эластичного IP, который уже связан с другим сетевым интерфейсом или экземпляром, к указанному экземпляру или интерфейсу. |
| aws_access_key строка | Ключ доступа AWS. Если не задан, используется значение переменной среды AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Если установлен параметр profile, этот параметр игнорируется. Передача параметров aws_access_key и profile одновременно устарела и параметры будут сделаны взаимоисключающими после 2022-06-01. псевдонимы: ec2_access_key, access_key | |
| aws_ca_bundle путь | Расположение набора сертификатов CA для проверки SSL-сертификатов. Используется только для модулей на основе boto3. Примечание: набор сертификатов CA читается со стороны модуля и, возможно, должен быть явно скопирован с контроллера, если он не запускается локально. | |
| aws_config словарь | Словарь для изменения конфигурации botocore. Параметры можно найти по адресу https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. Только ключ 'user_agent' используется для модулей boto. См. http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto для получения дополнительной информации о конфигурации boto. | |
| aws_secret_key строка | Секретный ключ AWS. Если не задан, используется значение переменной среды AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Если установлен параметр profile, этот параметр игнорируется. Передача параметров aws_secret_key и profile одновременно устарела и параметры будут сделаны взаимоисключающими после 2022-06-01. псевдонимы: ec2_secret_key, secret_key | |
| debug_botocore_endpoint_logs boolean |
| Используйте регистрирователь botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие», выполненных во время задачи, выводимые набор в ключ resource_actions в результатах задачи. Используйте обратный вызов aws_resource_action для вывода в общий список, созданный во время выполнения playbook. Также может использоваться переменная среды ANSIBLE_DEBUG_BOTOCORE_LOGS. |
| device_id строка | Идентификатор устройства для EIP. Может быть идентификатором экземпляра EC2 или идентификатором эластичного сетевого интерфейса (ENI). псевдонимы: instance_id | |
| ec2_url строка | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль будет использовать конечные точки EC2). Игнорируется для модулей, где регион требуется. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной среды EC2_URL, если таковая имеется. псевдонимы: aws_endpoint_url, endpoint_url | |
| in_vpc boolean |
| Выделить EIP внутри VPC или нет. Требуется, если указан ENI с параметром device_id. |
| private_ip_address строка | Основной или дополнительный частный IP-адрес для ассоциации с адресом эластичного IP. | |
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. Использование profile переопределяет aws_access_key, aws_secret_key и security_token, и поддержка их передачи вместе с profile устарела. aws_access_key, aws_secret_key и security_token будут сделаны взаимоисключающими с profile после 2022-06-01. псевдонимы: aws_profile | |
| public_ip строка | IP-адрес ранее выделенного EIP. Когда public_ip=present и указано устройство, EIP ассоциируется с устройством. Когда public_ip=absent и указано устройство, EIP диссоциируется от устройства. псевдонимы: ip | |
| public_ipv4_pool строка | Выделяет новый эластичный IP из предоставленного общедоступного IPv4-пула (BYOIP) – применяется только к вновь выделенным эластичным IP, не проверяется при reuse_existing_ip_allowed=true. | |
| 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 boolean |
| Автоматически освободить EIP при диссоциации. |
| reuse_existing_ip_allowed boolean |
| Использовать EIP, который не ассоциирован с устройством (если доступен), вместо выделения нового. |
| security_token строка | Токен безопасности AWS STS. Если не задан, используется значение переменной среды AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если установлен параметр profile, этот параметр игнорируется. Передача параметров security_token и profile одновременно устарела и параметры будут сделаны взаимоисключающими после 2022-06-01. псевдонимы: aws_security_token, access_token | |
| state строка |
| При present, выделить EIP или ассоциировать существующий EIP с устройством. При absent, диссоциировать EIP от устройства и, по желанию, освободить его. |
| tag_name строка | При reuse_existing_ip_allowed=true, используйте этот параметр, чтобы переиспользовать эластичный IP только в том случае, если он помечен тегом tag_name. | |
| tag_value строка | Дополняет tag_name, но также проверяет, что значение тега, предоставленного в tag_name, соответствует tag_value. | |
| validate_certs boolean |
| При установке в "нет", SSL-сертификаты не будут проверяться для версий boto >= 2.6.0. |
| wait_timeout целое число | Параметр wait_timeout не имеет никакого действия и будет удален после 2022-06-01 |
Примечания
Примечание
- Между назначением EIP и готовностью облачного экземпляра через новый адрес может быть задержка. Используйте wait_for и pause, чтобы приостановить дальнейшее выполнение playbook до тех пор, пока экземпляр не станет доступным, если это необходимо.
- Этот модуль возвращает несколько статусов изменения при диссоциации или освобождении. Он возвращает общий статус на основе любых произошедших изменений. Также возвращаются отдельные статусы изменения для диссоциации и освобождения.
- Если параметры не заданы в модуле, можно использовать следующие переменные среды в порядке убывания приоритета
AWS_URLилиEC2_URL,AWS_PROFILEилиAWS_DEFAULT_PROFILE,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,AWS_CA_BUNDLE - Ansible использует файл конфигурации boto (обычно ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
-
AWS_REGIONилиEC2_REGIONможно обычно использовать для указания региона AWS, когда это необходимо, но это также можно настроить в файле конфигурации boto
Примеры
# Note: These examples do not set authentication details, see the AWS Guide for details.
- name: associate an elastic IP with an instance
community.aws.ec2_eip:
device_id: i-1212f003
ip: 93.184.216.119
- name: associate an elastic IP with a device
community.aws.ec2_eip:
device_id: eni-c8ad70f3
ip: 93.184.216.119
- name: associate an elastic IP with a device and allow reassociation
community.aws.ec2_eip:
device_id: eni-c8ad70f3
public_ip: 93.184.216.119
allow_reassociation: true
- name: disassociate an elastic IP from an instance
community.aws.ec2_eip:
device_id: i-1212f003
ip: 93.184.216.119
state: absent
- name: disassociate an elastic IP with a device
community.aws.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
community.aws.ec2_eip:
device_id: i-1212f003
- name: allocate a new elastic IP without associating it to anything
community.aws.ec2_eip:
state: present
register: eip
- name: output the IP
ansible.builtin.debug:
msg: "Allocated IP is {{ eip.public_ip }}"
- name: provision new instances with ec2
amazon.aws.ec2:
keypair: mykey
instance_type: c1.medium
image: ami-40603AD1
wait: true
group: webserver
count: 3
register: ec2
- name: associate new elastic IPs with each of the instances
community.aws.ec2_eip:
device_id: "{{ item }}"
loop: "{{ ec2.instance_ids }}"
- name: allocate a new elastic IP inside a VPC in us-west-2
community.aws.ec2_eip:
region: us-west-2
in_vpc: true
register: eip
- name: output the IP
ansible.builtin.debug:
msg: "Allocated IP inside a VPC is {{ eip.public_ip }}"
- name: allocate eip - reuse unallocated ips (if found) with FREE tag
community.aws.ec2_eip:
region: us-east-1
in_vpc: true
reuse_existing_ip_allowed: true
tag_name: FREE
- name: allocate eip - reuse unallocated ips if tag reserved is nope
community.aws.ec2_eip:
region: us-east-1
in_vpc: true
reuse_existing_ip_allowed: true
tag_name: reserved
tag_value: nope
- name: allocate new eip - from servers given ipv4 pool
community.aws.ec2_eip:
region: us-east-1
in_vpc: true
public_ipv4_pool: ipv4pool-ec2-0588c9b75a25d1a02
- name: allocate eip - from a given pool (if no free addresses where dev-servers tag is dynamic)
community.aws.ec2_eip:
region: us-east-1
in_vpc: true
reuse_existing_ip_allowed: true
tag_name: dev-servers
public_ipv4_pool: ipv4pool-ec2-0588c9b75a25d1a02
- name: allocate eip from pool - check if tag reserved_for exists and value is our hostname
community.aws.ec2_eip:
region: us-east-1
in_vpc: true
reuse_existing_ip_allowed: true
tag_name: reserved_for
tag_value: "{{ inventory_hostname }}"
public_ipv4_pool: ipv4pool-ec2-0588c9b75a25d1a02
Возвращаемые значения
Общие значения возвращаемых данных описаны здесь, ниже приведены поля, уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| allocation_id string | при успехе | allocation_id эластичного IP-адреса Пример: eipalloc-51aa3a6c |
| public_ip string | при успехе | адрес эластичного IP-адреса Пример: 52.88.159.209 |
Авторы
- Rick Mendes (@rickmendes) <rmendes@illumina.com>
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/aws/ec2_eip_module.html