community.aws.ec2_eip – управляет адресами упругих IP-адресов EC2 (EIP).
Примечание
Этот плагин входит в коллекцию community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Для использования в книге задач укажите: 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. Для модулей boto используется только ключ 'user_agent'. Смотрите 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, чтобы вывести общий список, созданный во время книги задач. Переменная среды 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 security token. Если не задан, используется значение переменной среды AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если параметр profile установлен, этот параметр игнорируется. Одновременное использование параметров security_token и profile устарело и будет сделано взаимоисключающими после 2022-06-01. псевдонимы: aws_security_token, access_token | |
| state строка |
| Когда state=present, выделить EIP или связать существующий EIP с устройством.Когда state=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, чтобы отложить дальнейшее выполнение книги задач до тех пор, пока экземпляр не станет доступным, если это необходимо.
- Этот модуль возвращает несколько статусов изменения при отсоединении или освобождении. Он возвращает общий статус на основе любых изменений. Он также возвращает отдельные статусы изменения для отсоединения и освобождения.
- Если параметры не заданы в модуле, можно использовать следующие переменные среды в порядке убывания приоритета
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 строка | при успехе | allocation_id эластичного IP-адреса Пример: eipalloc-51aa3a6c |
| public_ip строка | при успехе | адрес эластичного IP-адреса Пример: 52.88.159.209 |
Авторы
- Rick Mendes (@rickmendes) <rmendes@illumina.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.10/collections/community/aws/ec2_eip_module.html