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) к экземпляру. Если предоставлен ENI ID или 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 для проверки SSL-сертификатов. Используется только для модулей на основе boto3. Примечание: набор сертификатов CA считывается со стороны 'модуля' и может потребоваться явное копирование с контроллера, если он не выполняется локально. | |
| aws_config dictionary | Словарь для изменения конфигурации 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 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 для вывода в общий список, выполненный во время выполнения книги команд. Также можно использовать переменную среды 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 | Идентификатор ENI (для изменения). Если eni_id=None и state=present, будет создан новый eni. | |
| force_detach boolean |
| Принудительное отключение интерфейса. Это применяется при явном отключении интерфейса установкой instance_id=None или при удалении интерфейса с state=absent. |
| instance_id string | Идентификатор экземпляра, к которому вы хотите подключить 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 токен. Если не задан, используется значение переменной среды 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 | Идентификатор подсети, в которой создать 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
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| интерфейс сложный | при state != отсутствует | Атрибуты сетевого интерфейса | |
| описание строка | успех | Описание интерфейса Пример: Сетевой интерфейс брандмауэра | |
| группы список / элементы=словарь | успех | Список групп безопасности Пример: [{'sg-f8a8a9da': 'default'}] | |
| id строка | успех | Идентификатор сетевого интерфейса Пример: eni-1d889198 | |
| mac_address строка | успех | Физический адрес интерфейса Пример: 00:00:5E:00:53:23 | |
| имя строка | успех | Имя 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 | |
| статус строка | успех | Статус сетевого интерфейса Пример: ожидание | |
| subnet_id строка | успех | Подсеть VPC, к которой привязан интерфейс Пример: subnet-b0a0393c | |
| метки словарь | успех | Словарь меток, связанных с ENI Пример: {'Имя': 'my-eni', 'группа': 'Финансы'} | |
| vpc_id строка | успех | VPC, к которому привязан этот сетевой интерфейс Пример: vpc-9a9a9da | |
Авторы
- Rob White (@wimnat)
- Mike Healey (@healem)
© 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/amazon/aws/ec2_eni_module.html