ec2_eni - Создание и (необязательно) подключение Elastic Network Interface (ENI) к экземпляру
Новая версия с 2.0.
Обзор
- Создает и (необязательно) подключает Elastic Network Interface (ENI) к экземпляру. Если предоставлен идентификатор ENI или private_ip, существующий ENI (если таковой имеется) будет изменён. Параметр «attached» управляет состоянием подключения сетевого интерфейса.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attached (добавлен в 2.2) | Значение по умолчанию: yes | Указывает, должен ли сетевой интерфейс быть подключен или отключен от экземпляра. Если опущено, состояние подключения не изменится |
| aws_access_key | Значение по умолчанию: None | Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. псевдонимы: ec2_access_key, access_key |
| aws_secret_key | Значение по умолчанию: None | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. псевдонимы: ec2_secret_key, secret_key |
| delete_on_termination | Удалить интерфейс при завершении работы экземпляра, к которому он подключен. Этот флаг можно указывать только при изменении интерфейса, а не при его создании. | |
| description | Значение по умолчанию: None | Необязательное описание ENI. |
| device_index | Значение по умолчанию: 0 | Индекс устройства для подключения сетевого интерфейса к экземпляру. |
| ec2_url | Значение по умолчанию: None | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где регион требуется. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если таковое имеется. |
| eni_id | Значение по умолчанию: None | Идентификатор ENI (для изменения); если null и state присутствует, будет создан новый eni. |
| force_detach | Значение по умолчанию: no | Принудительное отключение интерфейса. Это применяется при явном отключении интерфейса, установив instance_id в None, или при удалении интерфейса со state=absent. |
| instance_id | Значение по умолчанию: None | Идентификатор экземпляра, к которому нужно подключить ENI. С версии 2.2 используйте параметр «attached» для подключения или отключения ENI. До версии 2.2 для отключения ENI от экземпляра используйте «None». |
| private_ip_address | Значение по умолчанию: None | Приватный IP-адрес. |
| profile (добавлен в 1.6) | Значение по умолчанию: None | Использует профиль boto. Работает только с boto >= 2.24.0. |
| purge_secondary_private_ip_addresses (добавлен в 2.5) | Значение по умолчанию: no | Используется вместе с secondary_private_ip_addresses, чтобы определить, нужно ли удалять вторичные IP-адреса, кроме указанных. Установите secondary_private_ip_addresses в пустой список, чтобы удалить все вторичные адреса. |
| region | 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 (добавлен в 2.2) | Количество вторичных IP-адресов для назначения сетевому интерфейсу. Этот параметр взаимоисключающий с secondary_private_ip_addresses | |
| secondary_private_ip_addresses (добавлен в 2.2) | Список IP-адресов для назначения в качестве вторичных IP-адресов сетевому интерфейсу. Этот параметр взаимоисключающий с secondary_private_ip_address_count | |
| security_groups | Значение по умолчанию: None | Список групп безопасности, связанных с интерфейсом. Используется только при state=present. С версии 2.2 можно указать группы безопасности по ID или имени или сочетанием того и другого. До версии 2.2 можно было указать только по ID. |
| security_token (добавлен в 1.6) | Значение по умолчанию: None | Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. псевдонимы: access_token |
| source_dest_check | По умолчанию интерфейсы выполняют проверки источника/назначения. Однако экземпляры NAT нуждаются в отключении этой проверки. Этот флаг можно указывать только при изменении интерфейса, а не при его создании. | |
| state |
| Создать или удалить ENI |
| subnet_id | Идентификатор подсети, в которой нужно создать ENI. | |
| validate_certs (добавлен в 1.5) |
| Если установлено "no", сертификаты SSL не будут проверены для версий boto >= 2.6.0. |
Примечания
Примечание
- Этот модуль идентифицирует ENI на основе идентификатора eni_id, сочетания private_ip_address и subnet_id или сочетания instance_id и device_id. Любой из этих вариантов позволит указать конкретный ENI.
- Если параметры не заданы в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета
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
Примеры
# 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
- ec2_eni:
private_ip_address: 172.31.0.20
subnet_id: subnet-xxxxxxxx
state: present
# Create an ENI and attach it to an instance
- 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
- 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
- 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
- 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
- ec2_eni:
eni_id: eni-xxxxxxx
force_detach: yes
state: absent
# Update an ENI
- ec2_eni:
eni_id: eni-xxxxxxx
description: "My new description"
state: present
# Update an ENI identifying it by private_ip_address and subnet_id
- ec2_eni:
subnet_id: subnet-xxxxxxx
private_ip_address: 172.16.1.1
description: "My new description"
# Detach an ENI from an instance
- ec2_eni:
eni_id: eni-xxxxxxx
instance_id: None
state: present
### Delete an interface on termination
# First create the interface
- 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
- ec2_eni:
eni_id: "{{ eni.interface.id }}"
delete_on_termination: true
Возвращаемые значения
Общие возвращаемые значения описаны в здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| интерфейс complex | когда состояние != отсутствует | Атрибуты сетевого интерфейса | |
| статус строка | Статус сетевого интерфейса Пример: ожидание | ||
| описание строка | Описание интерфейса Пример: Сетевой интерфейс брандмауэра | ||
| subnet_id строка | В какой подсети VPC привязан интерфейс Пример: subnet-b0a0393c | ||
| private_ip_addresses список словарей | Список всех приватных IP-адресов, связанных с этим интерфейсом Пример: [{'private_ip_address': '10.20.30.40', 'primary_address': True}] | ||
| mac_address строка | Физический адрес интерфейса Пример: 00:00:5E:00:53:23 | ||
| private_ip_address строка | Основной IP-адрес этого интерфейса Пример: 10.20.30.40 | ||
| vpc_id строка | В какой VPC привязан этот сетевой интерфейс Пример: vpc-9a9a9da | ||
| groups список словарей | Список групп безопасности Пример: [{'sg-f8a8a9da': 'default'}] | ||
| id строка | ID сетевого интерфейса Пример: eni-1d889198 | ||
| source_dest_check булево | Значение флага проверки источника/назначения Пример: True | ||
| owner_id строка | ID учётной записи AWS Пример: 812381371 | ||
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратной совместимости.
Автор
- Rob White (@wimnat)
Подсказка
Если вы заметите какие-либо проблемы в этом документе, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/modules/ec2_eni_module.html