Spec-Zone.ru › Ansible

Модуль amazon.aws.ec2_eip — управление эластичными IP-адресами EC2 (EIP).

Примечание

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

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

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

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

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

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

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

  • Этот модуль может выделять или освобождать EIP.
  • Этот модуль может связывать EIP с экземплярами или сетевыми интерфейсами и отменять такую связь.
  • Этот модуль был добавлен в community.aws в выпуске 1.0.0.

Требования

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

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

Параметры

Параметр

Комментарии

access_key

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

строка

Идентификатор ключа доступа 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 для единообразия с AWS botocore SDK.

allow_reassociation

логическое значение

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

Возможные значения:

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

aws_ca_bundle

путь

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

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

aws_config

словарь

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

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

debug_botocore_endpoint_logs

логическое значение

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

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

Возможные значения:

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

device_id

строка

Идентификатор устройства для EIP.

Это может быть идентификатор экземпляра EC2 или сетевого интерфейса Elastic Network Interface (ENI).

При указании идентификатора ENI параметр in_vpc должен иметь значение true.

Псевдоним instance_id удалён в выпуске 6.0.0.

domain_name

строка

добавлено в amazon.aws 9.0.0

Имя домена, которое нужно привязать к IP-адресу.

endpoint_url

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

строка

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

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

in_vpc

логическое значение

Выделять EIP в VPC или нет.

Обязательный параметр при указании ENI с device_id.

Возможные значения:

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

private_ip_address

строка

Основной или дополнительный частный IP-адрес для привязки к эластичному IP-адресу.

profile

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

строка

Именованный профиль 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.

public_ip

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

строка

IP-адрес ранее выделенного EIP.

Если указаны state=present и устройство, EIP связывается с устройством.

Если указаны state=absent и устройство, связь EIP с устройством отменяется.

public_ipv4_pool

строка

Выделяет новый эластичный IP-адрес из указанного общедоступного пула IPv4 (BYOIP). Применяется только к новым эластичным IP-адресам и не проверяется, если указано reuse_existing_ip_allowed=true.

purge_tags

логическое значение

Если задано 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

строка

Регион AWS для использования.

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

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

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

release_on_disassociation

логическое значение

Автоматически ли освобождать EIP при отмене привязки.

Возможные значения:

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

reuse_existing_ip_allowed

логическое значение

Повторно использовать EIP, не связанный с устройством (если доступен), вместо выделения нового.

Возможные значения:

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

secret_key

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

строка

Секретный ключ доступа 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 для единообразия с AWS botocore SDK.

session_token

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

строка

Токен сеанса 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 являются взаимоисключающими.

state

строка

Если указано state=present, выделить EIP или связать существующий EIP с устройством.

Если указано state=absent, отменить привязку EIP к устройству и при необходимости освободить его.

Возможные значения:

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

tag_name

строка

При указании reuse_existing_ip_allowed=true используйте этот параметр, чтобы повторно использовать эластичный IP-адрес только в том случае, если он помечен тегом tag_name.

tag_value

строка

Дополняет tag_name, а также проверяет, что значение тега, указанного в tag_name, совпадает с tag_value.

tags

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

словарь

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

Если параметр tags не задан, теги не изменяются.

validate_certs

логическое значение

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

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

Возможные значения:

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

Примечания

Примечание

  • Между назначением EIP и доступностью облачного экземпляра по новому адресу может пройти некоторое время. При необходимости используйте wait_for и pause, чтобы отложить дальнейшее выполнение плейбука до тех пор, пока экземпляр не станет доступен.
  • При отмене привязки или освобождении этот модуль возвращает несколько статусов изменений. Он возвращает общий статус, основанный на наличии любых изменений, а также отдельные статусы изменений для отмены привязки и освобождения.
  • Поддержка tags и purge_tags добавлена в выпуске 2.1.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.

- name: associate an elastic IP with an instance
  amazon.aws.ec2_eip:
    device_id: i-1212f003
    ip: 93.184.216.119

- name: associate an elastic IP with a device
  amazon.aws.ec2_eip:
    device_id: eni-c8ad70f3
    ip: 93.184.216.119

- name: associate an elastic IP with a device and allow reassociation
  amazon.aws.ec2_eip:
    device_id: eni-c8ad70f3
    public_ip: 93.184.216.119
    allow_reassociation: true

- name: disassociate an elastic IP from an instance
  amazon.aws.ec2_eip:
    device_id: i-1212f003
    ip: 93.184.216.119
    state: absent

- name: disassociate an elastic IP with a device
  amazon.aws.ec2_eip:
    device_id: eni-c8ad70f3
    ip: 93.184.216.119
    state: absent

- name: allocate a new elastic IP and associate it with an instance
  amazon.aws.ec2_eip:
    device_id: i-1212f003

- name: allocate a new elastic IP without associating it to anything
  amazon.aws.ec2_eip:
    state: present
  register: eip

- name: output the IP
  ansible.builtin.debug:
    msg: "Allocated IP is {{ eip.public_ip }}"

- name: provision new instances with ec2
  amazon.aws.ec2:
    keypair: mykey
    instance_type: c1.medium
    image: ami-40603AD1
    wait: true
    group: webserver
    count: 3
  register: ec2

- name: associate new elastic IPs with each of the instances
  amazon.aws.ec2_eip:
    device_id: "{{ item }}"
  loop: "{{ ec2.instance_ids }}"

- name: allocate a new elastic IP inside a VPC in us-west-2
  amazon.aws.ec2_eip:
    region: us-west-2
    in_vpc: true
  register: eip

- name: output the IP
  ansible.builtin.debug:
    msg: "Allocated IP inside a VPC is {{ eip.public_ip }}"

- name: allocate eip - reuse unallocated ips (if found) with FREE tag
  amazon.aws.ec2_eip:
    region: us-east-1
    in_vpc: true
    reuse_existing_ip_allowed: true
    tag_name: FREE

- name: allocate eip - reuse unallocated ips if tag reserved is nope
  amazon.aws.ec2_eip:
    region: us-east-1
    in_vpc: true
    reuse_existing_ip_allowed: true
    tag_name: reserved
    tag_value: nope

- name: allocate new eip - from servers given ipv4 pool
  amazon.aws.ec2_eip:
    region: us-east-1
    in_vpc: true
    public_ipv4_pool: ipv4pool-ec2-0588c9b75a25d1a02

- name: allocate eip - from a given pool (if no free addresses where dev-servers tag is dynamic)
  amazon.aws.ec2_eip:
    region: us-east-1
    in_vpc: true
    reuse_existing_ip_allowed: true
    tag_name: dev-servers
    public_ipv4_pool: ipv4pool-ec2-0588c9b75a25d1a02

- name: allocate eip from pool - check if tag reserved_for exists and value is our hostname
  amazon.aws.ec2_eip:
    region: us-east-1
    in_vpc: true
    reuse_existing_ip_allowed: true
    tag_name: reserved_for
    tag_value: "{{ inventory_hostname }}"
    public_ipv4_pool: ipv4pool-ec2-0588c9b75a25d1a02

- name: create new IP and modify it's reverse DNS record
  amazon.aws.ec2_eip:
    state: present
    domain_name: test-domain.xyz

- name: Modify reverse DNS record of an existing EIP
  amazon.aws.ec2_eip:
    public_ip: 44.224.84.105
    domain_name: test-domain.xyz
    state: present

- name: Remove reverse DNS record of an existing EIP
  amazon.aws.ec2_eip:
    public_ip: 44.224.84.105
    domain_name: ""
    state: present

Возвращаемые значения

Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:

Ключ

Описание

allocation_id

строка

Идентификатор выделения эластичного IP-адреса.

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

Пример: "eipalloc-51aa3a6c"

public_ip

строка

Эластичный IP-адрес.

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

Пример: "52.88.159.209"

update_reverse_dns_record_result

словарь

Сведения о результате операции обновления обратной DNS-записи.

Возвращается: если указан параметр domain_name.

address

словарь

Сведения об эластичном IP-адресе.

Возвращается: всегда

allocation_id

строка

Идентификатор выделения.

Возвращается: всегда

Пример: "eipalloc-00a11aa111aaa1a11"

ptr_record

строка

Запись указателя (PTR) для IP-адреса.

Возвращается: всегда

Пример: "ec2-11-22-33-44.us-east-2.compute.amazonaws.com."

ptr_record_update

словарь

Обновлённая запись PTR для IP-адреса.

Возвращается: всегда

status

строка

Статус обновления записи PTR.

Возвращается: всегда

Пример: "PENDING"

value

строка

Значение для обновления записи PTR.

Возвращается: всегда

Пример: "example.com"

public_ip

строка

Публичный IP-адрес.

Возвращается: всегда

Пример: "11.22.33.44"

Авторы

  • Rick Mendes (@rickmendes)

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

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

© 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_eip_module.html

Spec-Zone.ru

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