ec2_eni – Создание и (необязательное) подключение Elastic Network Interface (ENI) к экземпляру
Новое в версии 2.0.
Обзор
- Создание и (необязательное) подключение Elastic Network Interface (ENI) к экземпляру. Если предоставлен ID ENI или private_ip, существующий ENI (если таковой имеется) будет изменён. Параметр ‘attached’ управляет состоянием подключения сетевого интерфейса.
Требования
Ниже приведены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| allow_reassignment boolean добавлено в 2.7 |
| Указывает, разрешено ли переназначение IP-адреса, уже назначенного другому сетевому интерфейсу или экземпляру, указанному сетевому интерфейсу. |
| attached boolean добавлено в 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 boolean |
| Удалить интерфейс при завершении работы экземпляра, к которому он подключен. Этот флаг можно указать только при изменении интерфейса, а не при его создании. |
| description - | Необязательное описание ENI. | |
| device_index - | По умолчанию: 0 | Индекс устройства для подключения сетевого интерфейса к экземпляру. |
| ec2_url - | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной среды EC2_URL, если она есть. | |
| eni_id - | ID ENI (для изменения); если null и state присутствует, будет создан новый eni. | |
| force_detach boolean |
| Принудительное отключение интерфейса. Это применимо, когда интерфейс явно отключается, установив instance_id в None, или при удалении интерфейса с state=absent. |
| instance_id - | 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 boolean добавлено в 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. Если не задан, используется значение переменной среды AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. псевдонимы: access_token | |
| source_dest_check boolean |
| По умолчанию интерфейсы выполняют проверки источника/назначения. Однако экземплярам NAT требуется отключение этой проверки. Этот флаг можно указать только при изменении интерфейса, а не при его создании. |
| state - |
| Создать или удалить ENI |
| subnet_id - | ID подсети, в которой нужно создать ENI. | |
| validate_certs boolean добавлено в 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), если учетные данные не предоставлены. См. 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
- 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
Возвращаемые значения
Общие значения возвращаемых данных документированы здесь, ниже приведены поля, уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| интерфейс сложный | когда состояние != отсутствует | Атрибуты сетевого интерфейса | |
| описание строка | Описание интерфейса Пример: Сетевой интерфейс брандмауэра | ||
| группы список словарей | Список групп безопасности Пример: [{'sg-f8a8a9da': 'default'}] | ||
| id строка | ID сетевого интерфейса Пример: eni-1d889198 | ||
| mac_address строка | Физический адрес интерфейса Пример: 00:00:5E:00:53:23 | ||
| owner_id строка | 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 | ||
| vpc_id строка | VPC, к которому привязан этот сетевой интерфейс Пример: vpc-9a9a9da | ||
Статус
- Данный модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается сообществом 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.7/modules/ec2_eni_module.html