Spec-Zone.ru › Ansible

Модуль amazon.aws.ec2_eni — создание и, при необходимости, подключение эластичного сетевого интерфейса (ENI) к экземпляру

Примечание

Этот модуль входит в коллекцию amazon.aws (версия 11.3.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install amazon.aws. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.

Чтобы использовать его в плейбуке, укажите: amazon.aws.ec2_eni.

Добавлено в amazon.aws 1.0.0

  • Краткое описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Создаёт эластичный сетевой интерфейс (ENI) и, при необходимости, подключает его к экземпляру.
  • Если указано eni_id или private_ip_address, существующий ENI (если он есть) будет изменён.
  • Параметр attached управляет состоянием подключения сетевого интерфейса.

Требования

На хосте, выполняющем этот модуль, должны быть установлены следующие компоненты.

  • python >= 3.6
  • boto3 >= 1.35.0
  • botocore >= 1.35.0

Параметры

Параметр

Комментарии

access_key

псевдонимы: aws_access_key_id, aws_access_key

string

Идентификатор ключа доступа AWS.

Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Также можно использовать переменные окружения AWS_ACCESS_KEY_ID или AWS_ACCESS_KEY в порядке убывания приоритета.

Параметры aws_access_key и profile являются взаимоисключающими.

Псевдоним aws_access_key_id добавлен в выпуске 5.1.0 для единообразия с SDK AWS botocore.

allow_reassignment

boolean

Указывает, разрешено ли переназначить указанный сетевой интерфейс IP-адрес, уже назначенный другому сетевому интерфейсу или экземпляру.

Варианты:

  • false ← (по умолчанию)
  • true

attached

boolean

Указывает, следует ли подключить сетевой интерфейс к экземпляру или отключить его. Если параметр не указан, состояние подключения не изменится.

Варианты:

  • false
  • true

aws_ca_bundle

path

Путь к пакету центров сертификации (CA), используемому для проверки сертификатов SSL.

Также можно использовать переменную окружения AWS_CA_BUNDLE.

aws_config

dictionary

Словарь для изменения конфигурации botocore.

Список параметров см. в документации AWS: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config.

debug_botocore_endpoint_logs

boolean

Использует регистратор botocore.endpoint для анализа уникальных (а не общего количества) вызовов API "resource:action", выполненных во время задачи, и выводит этот набор в ключ resource_actions результатов задачи. Используйте обработчик aws_resource_action, чтобы вывести общий список вызовов, выполненных в ходе плейбука.

Также можно использовать переменную окружения ANSIBLE_DEBUG_BOTOCORE_LOGS.

Варианты:

  • false ← (по умолчанию)
  • true

delete_on_termination

boolean

Удалять интерфейс при завершении работы экземпляра, к которому он подключён. Этот флаг можно указать только при изменении интерфейса, но не при его создании.

Варианты:

  • false
  • true

description

string

Необязательное описание ENI.

device_index

integer

Индекс устройства для подключения сетевого интерфейса к экземпляру.

По умолчанию: 0

endpoint_url

псевдонимы: aws_endpoint_url

string

URL для подключения вместо конечных точек AWS по умолчанию. Хотя этот параметр можно использовать для подключения к другим сервисам, совместимым с AWS, коллекции amazon.aws и community.aws тестируются только с AWS.

Также можно использовать переменную окружения AWS_URL.

eni_id

string

Идентификатор ENI (для изменения).

Если указаны eni_id=None и state=present, будет создан новый ENI.

force_detach

boolean

Принудительно отключить интерфейс. Применяется как при явном отключении интерфейса с помощью instance_id=None, так и при удалении интерфейса с помощью state=absent.

Варианты:

  • false ← (по умолчанию)
  • true

instance_id

string

Идентификатор экземпляра, к которому нужно подключить ENI.

name

string

Имя ENI. Будет создан тег с ключом Name и указанным здесь значением.

Его можно использовать вместе с subnet_id как ещё один способ идентификации сетевого интерфейса.

AWS не требует уникальности тегов Name, поэтому при соответствующей настройке возможны одинаковые имена. В таком случае необходимо предоставить другие идентификационные данные, например private_ip_address или eni_id.

private_ip_address

string

Частный IP-адрес.

profile

псевдонимы: aws_profile

string

Именованный профиль AWS для аутентификации.

Дополнительные сведения об именованных профилях см. в документации AWS: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html.

Также можно использовать переменную окружения AWS_PROFILE.

Параметр profile является взаимоисключающим с параметрами aws_access_key, aws_secret_key и session_token.

purge_secondary_private_ip_addresses

boolean

Используется вместе с secondary_private_ip_addresses, чтобы определить, следует ли удалять все вторичные IP-адреса, кроме указанных.

Установите secondary_private_ip_addresses=[], чтобы удалить все вторичные адреса.

Варианты:

  • false ← (по умолчанию)
  • true

purge_tags

boolean

Если указано purge_tags=true и задан параметр tags, существующие теги ресурса будут удалены, чтобы набор тегов точно соответствовал заданному параметру tags.

Если параметр tags не задан, теги не будут изменены, даже если указано purge_tags=True.

Ключи тегов, начинающиеся с aws:, зарезервированы Amazon и не могут быть изменены. Поэтому при обработке параметра purge_tags они будут игнорироваться. Дополнительные сведения см. в документации Amazon: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions.

Варианты:

  • false
  • true ← (по умолчанию)

region

псевдонимы: aws_region

string

Регион AWS, который нужно использовать.

Для глобальных сервисов, таких как IAM, Route53 и CloudFront, параметр region игнорируется.

Также можно использовать переменную окружения AWS_REGION.

Дополнительные сведения см. в документации Amazon AWS: http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region.

secondary_private_ip_address_count

integer

Количество вторичных IP-адресов, назначаемых сетевому интерфейсу.

Этот параметр является взаимоисключающим с secondary_private_ip_addresses.

secondary_private_ip_addresses

list / elements=string

Список IP-адресов, назначаемых сетевому интерфейсу в качестве вторичных.

Этот параметр является взаимоисключающим с secondary_private_ip_address_count.

secret_key

псевдонимы: aws_secret_access_key, aws_secret_key

string

Секретный ключ доступа AWS.

Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Также можно использовать переменные окружения AWS_SECRET_ACCESS_KEY или AWS_SECRET_KEY в порядке убывания приоритета.

Параметры secret_key и profile являются взаимоисключающими.

Псевдоним aws_secret_access_key добавлен в выпуске 5.1.0 для единообразия с SDK AWS botocore.

security_groups

list / elements=string

Список групп безопасности, связанных с интерфейсом.

Игнорируется, если указано state=absent.

По умолчанию: []

session_token

псевдонимы: aws_session_token

string

Токен сеанса AWS STS для использования с временными учётными данными.

Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Также можно использовать переменную окружения AWS_SESSION_TOKEN.

Параметры session_token и profile являются взаимоисключающими.

source_dest_check

boolean

По умолчанию интерфейсы выполняют проверку источника и назначения. Однако для экземпляров NAT эту проверку необходимо отключить. Этот флаг можно указать только при изменении интерфейса, но не при его создании.

Варианты:

  • false
  • true

state

string

Создать или удалить ENI.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

subnet_id

string

Идентификатор подсети, в которой нужно создать ENI.

tags

псевдонимы: resource_tags

dictionary

Словарь тегов, которые нужно применить к ресурсу.

Если параметр tags не задан, теги не будут изменены.

validate_certs

boolean

Если установлено значение false, сертификаты SSL при обмене данными с API AWS проверяться не будут.

Настоятельно не рекомендуется устанавливать validate_certs=false; вместо этого рекомендуется задать параметр aws_ca_bundle.

Варианты:

  • false
  • true ← (по умолчанию)

Примечания

Примечание

  • Этот модуль идентифицирует ENI по eni_id, сочетанию private_ip_address и subnet_id либо сочетанию instance_id и device_index. Любой из этих вариантов позволяет указать конкретный ENI.
  • Поддержка tags и purge_tags добавлена в выпуске 1.3.0.
  • Внимание: В модулях переменные окружения и файлы конфигурации считываются из контекста «хоста» Ansible, а не из контекста «контроллера». Поэтому файлы может потребоваться явно скопировать на «хост». В плагинах поиска и подключения переменные окружения и файлы конфигурации считываются из контекста «контроллера» Ansible, а не из контекста «хоста».
  • Используемый Ansible пакет AWS SDK (boto3) также может считывать значения по умолчанию для учётных данных и других настроек, например региона, из файлов конфигурации в контексте «хоста» Ansible (обычно ~/.aws/credentials). Дополнительные сведения см. по адресу https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html.

Примеры

# 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

complex

Атрибуты сетевого интерфейса.

Возвращается: когда state != absent

attachment

dictionary

Подключение сетевого интерфейса.

Возвращается: при успешном выполнении

Пример: {"attach_time": "2024-04-25T20:57:20+00:00", "attachment_id": "eni-attach-0ddce58b341a1846f", "delete_on_termination": true, "device_index": 0, "instance_id": "i-032cb1cceb29250d2", "status": "attached"}

description

string

Описание интерфейса.

Возвращается: при успешном выполнении

Пример: "Firewall network interface"

groups

dictionary

Словарь групп безопасности.

Возвращается: при успешном выполнении

Пример: {"sg-f8a8a9da": "default"}

id

string

Идентификатор сетевого интерфейса.

Возвращается: при успешном выполнении

Пример: "eni-1d889198"

mac_address

string

Физический адрес интерфейса.

Возвращается: при успешном выполнении

Пример: "00:00:5E:00:53:23"

name

string

Имя ENI.

Возвращается: при успешном выполнении

Пример: "my-eni-20"

owner_id

string

Идентификатор учетной записи AWS.

Возвращается: при успешном выполнении

Пример: "812381371"

private_ip_address

string

Основной IP-адрес этого интерфейса.

Возвращается: при успешном выполнении

Пример: "10.20.30.40"

private_ip_addresses

list / elements=dictionary

Список всех частных IP-адресов, связанных с этим интерфейсом.

Возвращается: при успешном выполнении

Пример: [{"primary_address": true, "private_ip_address": "10.20.30.40"}]

source_dest_check

boolean

Значение флага проверки источника и назначения.

Возвращается: при успешном выполнении

Пример: true

status

string

Статус сетевого интерфейса.

Возвращается: при успешном выполнении

Пример: "pending"

subnet_id

string

Идентификатор подсети VPC, к которой привязан интерфейс.

Возвращается: при успешном выполнении

Пример: "subnet-b0a0393c"

tags

dictionary

Словарь тегов, связанных с ENI.

Возвращается: при успешном выполнении

Пример: {"Name": "my-eni", "group": "Finance"}

vpc_id

string

Идентификатор VPC, к которой привязан этот сетевой интерфейс.

Возвращается: при успешном выполнении

Пример: "vpc-9a9a9da"

Авторы

  • Rob White (@wimnat)
  • Mike Healey (@healem)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/amazon/aws/ec2_eni_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API