Spec-Zone.ru › Ansible

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

Примечание

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

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

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

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

Впервые появился в community.aws 1.0.0

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

Описание

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

Требования

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

  • python >= 3.6
  • boto3 >= 1.26.0
  • botocore >= 1.29.0

Параметры

Параметр

Комментарии

access_key

псевдонимы: aws_access_key_id, aws_access_key, ec2_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 или EC2_ACCESS_KEY в порядке убывания приоритета.

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

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

Псевдоним ec2_access_key устарел и будет удален в релизе после 2024-12-01.

Поддержка переменной среды EC2_ACCESS_KEY устарела и будет удалена в релизе после 2024-12-01.

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 логгер для анализа уникальных (а не общих) "resource:action" вызовов API во время задачи, выводя набор в ключ resource_actions в результатах задачи. Используйте aws_resource_action обратный вызов для вывода в общий список, сделанный во время выполнения playbook.

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

Варианты:

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

endpoint_url

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

строка

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

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

Псевдонимы ec2_url и s3_url устарели и будут удалены в релизе после 2024-12-01.

Поддержка переменной среды EC2_URL устарела и будет удалена в релизе после 2024-12-01.

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 и security_token.

region

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

строка

Используемый регион AWS.

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

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

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

Псевдоним ec2_region устарел и будет удален в релизе после 2024-12-01

Поддержка переменной среды EC2_REGION устарела и будет удалена в релизе после 2024-12-01.

secret_key

псевдонимы: aws_secret_access_key, aws_secret_key, ec2_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, или EC2_SECRET_KEY в порядке убывания приоритета.

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

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

Псевдоним ec2_secret_key устарел и будет удален в релизе после 2024-12-01.

Поддержка переменной среды EC2_SECRET_KEY устарела и будет удалена в релизе после 2024-12-01.

END_OF_DOCUMENT_MARKER

session_token

aliases: aws_session_token, security_token, aws_security_token, access_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, AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN в порядке убывания приоритета.

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

Алиасы aws_session_token и session_token были добавлены в релизе 3.2.0, а параметр был переименован из security_token в session_token в релизе 6.0.0.

Алиасы security_token, aws_security_token и access_token устарели и будут удалены в релизе после 2024-12-01.

Поддержка переменных среды EC2_SECRET_KEY и AWS_SECURITY_TOKEN устарела и будет удалена в релизе после 2024-12-01.

validate_certs

boolean

При установке в false, сертификаты SSL не будут проверяться при общении с API AWS.

Установка validate_certs=false крайне не рекомендуется; в качестве альтернативы, рассмотрите установку aws_ca_bundle вместо этого.

Варианты:

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

Примечания

Примечание

  • Внимание: Для модулей переменные среды и конфигурационные файлы считываются из контекста Ansible «хост», а не «контроллер». В связи с этим файлы могут потребоваться скопировать явно на «хост». Для плагинов поиска и подключения переменные среды и конфигурационные файлы считываются из контекста Ansible «контроллер», а не «хост».
  • AWS SDK (boto3), который использует Ansible, также может читать значения по умолчанию для учетных данных и других настроек, таких как регион, из своих конфигурационных файлов в контексте 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-github)

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

  • Трекер задач
  • Репозиторий (источники)
  • Общение

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

Spec-Zone.ru

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