amazon.aws.ec2_eni – Создание и (необязательное) подключение интерфейса Elastic Network Interface (ENI) к экземпляру
Примечание
Этот плагин входит в состав коллекции amazon.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install amazon.aws.
Чтобы использовать его в книге задач, укажите: amazon.aws.ec2_eni.
Новое в версии 1.0.0: of amazon.aws
Описание
- Создайте и (необязательно) подключите интерфейс Elastic Network Interface (ENI) к экземпляру. Если предоставлен ID ENI или private_ip, существующий ENI (если таковой имеется) будет изменён. Параметр «attached» управляет состоянием подключения сетевого интерфейса.
Требования
Ниже перечислены требования, необходимые на хосте, который выполняет этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| allow_reassignment boolean |
| Указывает, разрешить ли повторное назначение IP-адреса, уже назначенного другому сетевому интерфейсу или экземпляру, указанному сетевому интерфейсу. |
| attached boolean |
| Указывает, должен ли сетевой интерфейс быть подключен или отключен от экземпляра. Если опущено, статус подключения не изменится |
| aws_access_key string | Ключ доступа 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 path | Путь к файлу CA Bundle для проверки SSL-сертификатов. Используется только для модулей на основе boto3. Примечание: CA Bundle считывается на стороне модуля и может потребоваться явное копирование из контроллера, если он не запускается локально. | |
| aws_config dictionary | Словарь для изменения конфигурации botocore. Параметры можно найти по адресу https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. Для модулей boto используется только ключ 'user_agent'. Подробнее о конфигурации boto см. по адресу http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto. | |
| aws_secret_key string | Секретный ключ 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. |
| delete_on_termination boolean |
| Удалить интерфейс при завершении работы экземпляра, к которому он подключен. Этот флаг можно указать только при изменении интерфейса, а не при его создании. |
| description string | Необязательное описание ENI. | |
| device_index integer | По умолчанию: 0 | Индекс устройства для подключения сетевого интерфейса к экземпляру. |
| ec2_url string | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует адреса EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если таковая есть. Псевдонимы: aws_endpoint_url, endpoint_url | |
| eni_id string | ID ENI (для изменения). Если eni_id=None и state=present, будет создан новый eni. | |
| force_detach boolean |
| Принудительное отключение интерфейса. Это применяется при явном отключении интерфейса путем установки instance_id=None или при удалении интерфейса с state=absent. |
| instance_id string | ID экземпляра, к которому необходимо подключить ENI. С версии 2.2 используйте параметр attached для подключения или отключения ENI. До версии 2.2 для отключения ENI от экземпляра используйте None. | |
| name string | Имя ENI. Это создаст тег с названием "Name" со значением, указанным здесь. Это можно использовать вместе с subnet_id как ещё один способ идентификации сетевого интерфейса. AWS не накладывает ограничений на уникальность тегов Name, поэтому дублирование имён возможно, если вы настроили это так. В этом случае вам потребуется предоставить другую идентифицирующую информацию, такую как private_ip_address или eni_id. | |
| private_ip_address string | Приватный IP-адрес. | |
| profile string | Использует профиль 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 | |
| purge_secondary_private_ip_addresses boolean |
| Используется с secondary_private_ip_addresses для определения удаления или нет вторичных IP-адресов, кроме указанных. Установите secondary_private_ip_addresses=[] для удаления всех вторичных адресов. |
| purge_tags boolean добавлен в 1.3.0 amazon.aws |
| Указывает, нужно ли удалить теги, не указанные в tags или name. Это означает, что вам нужно указать все желаемые теги в каждой задаче, влияющей на сетевой интерфейс. Если tags опущено или равно None, этот параметр игнорируется. |
| region string | AWS регион для использования. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION, если таковая есть. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
Псевдонимы: aws_region, ec2_region | |
| secondary_private_ip_address_count integer | Количество вторичных IP-адресов, которые необходимо назначить сетевому интерфейсу. Этот параметр взаимно исключает secondary_private_ip_addresses
| |
| secondary_private_ip_addresses list / elements=string | Список IP-адресов, которые нужно назначить в качестве вторичных IP-адресов сетевому интерфейсу. Этот параметр взаимно исключает secondary_private_ip_address_count
| |
| security_groups list / elements=string | Список групп безопасности, связанных с интерфейсом. Используется только при state=present. С версии 2.2 вы можете указывать группы безопасности по ID или имени или комбинации обоих. До версии 2.2 вы можете указывать только по ID. | |
| security_token string | AWS STS security token. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если параметр profile задан, этот параметр игнорируется. Передача параметров security_token и profile одновременно устарела и параметры будут взаимно исключать друг друга после 2022-06-01. Псевдонимы: aws_security_token, access_token | |
| source_dest_check boolean |
| По умолчанию интерфейсы выполняют проверки источника/назначения. Однако экземпляры NAT нуждаются в отключении этой проверки. Этот флаг можно указать только при изменении интерфейса, а не при его создании. |
| state string |
| Создание или удаление ENI. |
| subnet_id string | ID подсети, в которой необходимо создать ENI. | |
| tags dictionary добавлен в 1.3.0 amazon.aws | Словарь тегов для добавления к новому ENI или добавления/удаления из существующего. Обратите внимание, что поле name устанавливает тег "Name". Для удаления всех тегов установите этот параметр в пустой словарь для использования в сочетании с purge_tags. Если вы предоставили name, этот тег не будет удалён. Чтобы предотвратить удаление тегов, установите purge_tags в false. | |
| validate_certs boolean |
| При значении "нет", SSL-сертификаты не будут проверяться для версий boto >= 2.6.0. |
Примечания
Примечание
- Этот модуль идентифицирует и определяет ENI на основе eni_id, комбинации private_ip_address и subnet_id или комбинации instance_id и device_id. Любой из этих вариантов позволит указать конкретный ENI.
- Если параметры не заданы в модуле, можно использовать следующие переменные среды в порядке убывания приоритета
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.
# Create an ENI. As no security group is defined, ENI will be created in default security group
- amazon.aws.ec2_eni:
private_ip_address: 172.31.0.20
subnet_id: subnet-xxxxxxxx
state: present
# Create an ENI and attach it to an instance
- amazon.aws.ec2_eni:
instance_id: i-xxxxxxx
device_index: 1
private_ip_address: 172.31.0.20
subnet_id: subnet-xxxxxxxx
state: present
# Create an ENI with two secondary addresses
- amazon.aws.ec2_eni:
subnet_id: subnet-xxxxxxxx
state: present
secondary_private_ip_address_count: 2
# Assign a secondary IP address to an existing ENI
# This will purge any existing IPs
- amazon.aws.ec2_eni:
subnet_id: subnet-xxxxxxxx
eni_id: eni-yyyyyyyy
state: present
secondary_private_ip_addresses:
- 172.16.1.1
# Remove any secondary IP addresses from an existing ENI
- amazon.aws.ec2_eni:
subnet_id: subnet-xxxxxxxx
eni_id: eni-yyyyyyyy
state: present
secondary_private_ip_address_count: 0
# Destroy an ENI, detaching it from any instance if necessary
- amazon.aws.ec2_eni:
eni_id: eni-xxxxxxx
force_detach: true
state: absent
# Update an ENI
- amazon.aws.ec2_eni:
eni_id: eni-xxxxxxx
description: "My new description"
state: present
# Update an ENI using name and subnet_id
- amazon.aws.ec2_eni:
name: eni-20
subnet_id: subnet-xxxxxxx
description: "My new description"
state: present
# Update an ENI identifying it by private_ip_address and subnet_id
- amazon.aws.ec2_eni:
subnet_id: subnet-xxxxxxx
private_ip_address: 172.16.1.1
description: "My new description"
# Detach an ENI from an instance
- amazon.aws.ec2_eni:
eni_id: eni-xxxxxxx
instance_id: None
state: present
### Delete an interface on termination
# First create the interface
- amazon.aws.ec2_eni:
instance_id: i-xxxxxxx
device_index: 1
private_ip_address: 172.31.0.20
subnet_id: subnet-xxxxxxxx
state: present
register: eni
# Modify the interface to enable the delete_on_terminaton flag
- amazon.aws.ec2_eni:
eni_id: "{{ eni.interface.id }}"
delete_on_termination: true
Значения возврата
Общие значения возврата документированы здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| interface сложный | при state != absent | Атрибуты сетевого интерфейса | |
| description строка | успех | Описание интерфейса Пример: Интерфейс сети брандмауэра | |
| groups список / элементы=словарь | успех | Список групп безопасности Пример: [{'sg-f8a8a9da': 'default'}] | |
| id строка | успех | Идентификатор сетевого интерфейса Пример: eni-1d889198 | |
| mac_address строка | успех | Физический адрес интерфейса Пример: 00:00:5E:00:53:23 | |
| name строка | успех | Имя ENI Пример: my-eni-20 | |
| owner_id строка | успех | Идентификатор учетной записи AWS Пример: 812381371 | |
| private_ip_address строка | успех | Основной IP-адрес этого интерфейса Пример: 10.20.30.40 | |
| private_ip_addresses список / элементы=словарь | успех | Список всех частных IP-адресов, связанных с этим интерфейсом Пример: [{'primary_address': True, 'private_ip_address': '10.20.30.40'}] | |
| source_dest_check булево | успех | Значение флага проверки источника/назначения Пример: True | |
| status строка | успех | Статус сетевого интерфейса Пример: ожидание | |
| subnet_id строка | успех | Подсеть VPC, к которой привязан интерфейс Пример: subnet-b0a0393c | |
| tags словарь | успех | Словарь тегов, связанных с ENI Пример: {'Имя': 'my-eni', 'группа': 'Финансы'} | |
| vpc_id строка | успех | VPC, к которой привязан сетевой интерфейс Пример: vpc-9a9a9da | |
Авторы
- Rob White (@wimnat)
- Mike Healey (@healem)
© 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/amazon/aws/ec2_eni_module.html