ec2_eni - Создание и (необязательная) привязка интерфейса Elastic Network Interface (ENI) к экземпляру
Новая версия 2.0.
Обзор
- Создайте и (необязательно) привяжите интерфейс Elastic Network Interface (ENI) к экземпляру. Если предоставлен идентификатор ENI или private_ip, существующий ENI (при наличии) будет изменён. Параметр «attached» управляет состоянием привязки сетевого интерфейса.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attached bool (добавлен в 2.2) |
| Указывает, должен ли сетевой интерфейс быть присоединён или отключён от экземпляра. Если опущено, состояние привязки не изменится |
| aws_access_key | Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. алиасы: ec2_access_key, access_key | |
| aws_secret_key | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. алиасы: ec2_secret_key, secret_key | |
| delete_on_termination | Удалить интерфейс при завершении работы экземпляра, к которому он присоединён. Этот флаг можно указать только при модификации интерфейса, а не при его создании. | |
| description | Необязательное описание ENI. | |
| device_index | По умолчанию: 0 | Индекс устройства для привязки сетевого интерфейса к экземпляру. |
| ec2_url | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL (если она есть). | |
| eni_id | Идентификатор ENI (для изменения); если null и state задан, будет создан новый eni. | |
| force_detach | По умолчанию: "нет" | Принудительное отделение интерфейса. Это применяется, когда интерфейс отсоединяется явно, устанавливая instance_id в None, или когда интерфейс удаляется со state=absent. |
| instance_id | Идентификатор экземпляра, к которому вы хотите прикрепить ENI. С версии 2.2 используйте параметр «attached» для привязки или отсоединения ENI. До версии 2.2 для отсоединения ENI от экземпляра используйте «None». | |
| private_ip_address | Приватный IP-адрес. | |
| profile (добавлен в 1.6) | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| purge_secondary_private_ip_addresses (добавлен в 2.5) | По умолчанию: "нет" | Используется с 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 | Список групп безопасности, связанных с интерфейсом. Используется только при state=present. С версии 2.2 вы можете указать группы безопасности по ID или имени, или комбинацией того и другого. До версии 2.2 вы могли указать только по ID. | |
| security_token (добавлен в 1.6) | AWS STS security token. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. алиасы: access_token | |
| source_dest_check | По умолчанию интерфейсы выполняют проверки источника/назначения. Однако экземпляры NAT нуждаются в отключении этой проверки. Этот флаг можно указать только при модификации интерфейса, а не при его создании. | |
| state |
| Создать или удалить ENI |
| subnet_id | Идентификатор подсети, в которой нужно создать ENI. | |
| validate_certs bool (добавлен в 1.5) |
| Если установлено «нет», сертификаты 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 | когда состояние != отсутствует | Атрибуты сетевого интерфейса | |
| описание строка | Описание интерфейса Пример: Сетевой интерфейс брандмауэра | ||
| группы список словарей | Список групп безопасности Пример: [{'sg-f8a8a9da': 'default'}] | ||
| id строка | Идентификатор сетевого интерфейса Пример: eni-1d889198 | ||
| mac_address строка | Физический адрес интерфейса Пример: 00:00:5E:00:53:23 | ||
| 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 | ||
| vpc_id строка | VPC, к которому привязан этот сетевой интерфейс Пример: vpc-9a9a9da | ||
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. См. Техническое обслуживание и поддержка модулей для получения дополнительной информации.
Список других модулей, поддерживаемых сообществом Ansible, см. здесь.
Автор
- 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.6/modules/ec2_eni_module.html