Spec-Zone.ru › Ansible

Модуль community.aws.elb_target_info — собирает сведения о группах целевых объектов, с которыми связан целевой объект.

Примечание

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

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

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

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

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

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

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

  • Модуль выполняет поиск по всем группам целевых объектов в регионе, чтобы определить, в каких из них зарегистрирован указанный идентификатор экземпляра или IP-адрес.

Требования

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

  • python >= 3.6
  • boto3 >= 1.34.0
  • botocore >= 1.34.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 SDK botocore.

aws_ca_bundle

путь

Путь к пакету сертификатов CA, используемому для проверки 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

endpoint_url

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

строка

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

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

get_unused_target_groups

логический

Определяет, нужно ли получать группы целевых объектов, не используемые балансировщиками нагрузки.

Варианты:

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

instance_id

строка / обязательный

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

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.

region

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

строка

Регион AWS.

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

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

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

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 SDK botocore.

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

validate_certs

логический

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

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

Варианты:

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

Примечания

Примечание

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

Примеры

# practical use case - dynamically de-registering and re-registering nodes

- name: Get EC2 Metadata
  amazon.aws.ec2_metadata_facts:

- name: Get initial list of target groups
  delegate_to: localhost
  community.aws.elb_target_info:
    instance_id: "{{ ansible_ec2_instance_id }}"
    region: "{{ ansible_ec2_placement_region }}"
  register: target_info

- name: save fact for later
  ansible.builtin.set_fact:
    original_tgs: "{{ target_info.instance_target_groups }}"

- name: Deregister instance from all target groups
  delegate_to: localhost
  community.aws.elb_target:
    target_group_arn: "{{ item.0.target_group_arn }}"
    target_port: "{{ item.1.target_port }}"
    target_az: "{{ item.1.target_az }}"
    target_id: "{{ item.1.target_id }}"
    state: absent
    target_status: "draining"
    region: "{{ ansible_ec2_placement_region }}"
  with_subelements:
    - "{{ original_tgs }}"
    - "targets"

  # This avoids having to wait for 'elb_target' to serially deregister each
  # target group.  An alternative would be to run all of the 'elb_target'
  # tasks async and wait for them to finish.

- name: wait for all targets to deregister simultaneously
  delegate_to: localhost
  community.aws.elb_target_info:
    get_unused_target_groups: false
    instance_id: "{{ ansible_ec2_instance_id }}"
    region: "{{ ansible_ec2_placement_region }}"
  register: target_info
  until: (target_info.instance_target_groups | length) == 0
  retries: 60
  delay: 10

- name: reregister in elbv2s
  community.aws.elb_target:
    region: "{{ ansible_ec2_placement_region }}"
    target_group_arn: "{{ item.0.target_group_arn }}"
    target_port: "{{ item.1.target_port }}"
    target_az: "{{ item.1.target_az }}"
    target_id: "{{ item.1.target_id }}"
    state: present
    target_status: "initial"
  with_subelements:
    - "{{ original_tgs }}"
    - "targets"

# wait until all groups associated with this instance are 'healthy' or
# 'unused'
- name: wait for registration
  community.aws.elb_target_info:
    get_unused_target_groups: false
    instance_id: "{{ ansible_ec2_instance_id }}"
    region: "{{ ansible_ec2_placement_region }}"
  register: target_info
  until: (target_info.instance_target_groups |
          map(attribute='targets') |
          flatten |
          map(attribute='target_health') |
          rejectattr('state', 'equalto', 'healthy') |
          rejectattr('state', 'equalto', 'unused') |
          list |
          length) == 0
  retries: 61
  delay: 10

# using the target groups to generate AWS CLI commands to reregister the
# instance - useful in case the playbook fails mid-run and manual
#            rollback is required
- name: "reregistration commands: ELBv2s"
  ansible.builtin.debug:
    msg: >
           aws --region {{ansible_ec2_placement_region}} elbv2
           register-targets --target-group-arn {{item.target_group_arn}}
           --targets{%for target in item.targets%}
           Id={{target.target_id}},
           Port={{target.target_port}}{%if target.target_az%},AvailabilityZone={{target.target_az}}
           {%endif%}
           {%endfor%}
  loop: "{{target_info.instance_target_groups}}"

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

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

Ключ

Описание

instance_target_groups

составной

список групп целевых объектов, в которых зарегистрирован экземпляр

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

target_group_arn

строка

ARN группы целевых объектов

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

Пример: "['arn:aws:elasticloadbalancing:eu-west-1:123456789012:targetgroup/target-group/deadbeefdeadbeef']"

target_group_type

строка

Тип целевого объекта, используемый для этой группы

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

Пример: "['ip', 'instance']"

targets

составной

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

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

target_az

строка

зона доступности, явно связанная с этим целевым объектом

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

Пример: "['us-west-2a']"

target_health

составной

Описание состояния здоровья целевого объекта.

Список всех возможных значений см. по следующей ссылке: https://boto3.readthedocs.io/en/latest/reference/services/elbv2.html#ElasticLoadBalancingv2.Client.describe_target_health

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

description

строка

описание состояния здоровья целевого объекта

Возвращается: если state!=present

Пример: "['Target desregistration is in progress']"

reason

строка

код причины состояния здоровья целевого объекта

Возвращается: если state!=healthy

Пример: "['Target.Deregistration in progress']"

state

строка

состояние здоровья

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

Пример: "['healthy', 'draining', 'initial', 'unhealthy', 'unused', 'unavailable']"

target_id

строка

идентификатор целевого объекта, соответствующий этому экземпляру

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

Пример: "['i-deadbeef', '1.2.3.4']"

target_port

строка

порт, на котором прослушивает соединения этот целевой объект

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

Пример: "[80]"

Авторы

  • Yaakov Kuperman (@yaakov-github)

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

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

© 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/community/aws/elb_target_info_module.html

Spec-Zone.ru

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