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 и profile взаимоисключающие. Псевдоним aws_access_key_id был добавлен в релизе 5.1.0 для соответствия SDK AWS botocore. Псевдоним ec2_access_key устарел и будет удален в релизе после 2024-12-01. Поддержка переменной среды |
aws_ca_bundle путь | Расположение пакета CA для проверки SSL-сертификатов. Также можно использовать переменную среды |
aws_config словарь | Словарь для изменения конфигурации botocore. Параметры можно найти в документации AWS https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. |
debug_botocore_endpoint_logs логический тип | Используйте Также можно использовать переменную среды Варианты:
|
endpoint_url псевдонимы: ec2_url, aws_endpoint_url, s3_url строка | URL для подключения вместо стандартных конечных точек AWS. Хотя это можно использовать для подключения к другим совместимым с AWS службам, коллекции amazon.aws и community.aws протестированы только на AWS. Также можно использовать переменные среды Псевдонимы ec2_url и s3_url устарели и будут удалены в релизе после 2024-12-01. Поддержка переменной среды |
get_unused_target_groups логический тип | Получить ли целевые группы, которые не используются ни одним балансировщиком нагрузки. Варианты:
|
instance_id строка / обязательно | Идентификатор экземпляра, для которого требуется информация. |
profile псевдонимы: aws_profile строка | Используемый профиль AWS с именем. Дополнительную информацию о профилях с именами см. в документации AWS https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html. Также можно использовать переменную среды Параметр profile взаимоисключает параметры aws_access_key, aws_secret_key и security_token. |
region псевдонимы: aws_region, ec2_region строка | Используемый регион AWS. Для глобальных сервисов, таких как IAM, Route53 и CloudFront, region игнорируется. Также можно использовать переменные среды Дополнительную информацию см. в документации Amazon AWS http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region. Псевдоним Поддержка переменной среды |
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. Также можно использовать переменные среды Параметры secret_key и profile взаимоисключающие. Псевдоним aws_secret_access_key был добавлен в релизе 5.1.0 для соответствия SDK AWS botocore. Псевдоним ec2_secret_key устарел и будет удален в релизе после 2024-12-01. Поддержка переменной среды |
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. Также могут быть использованы переменные среды Параметры 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. Поддержка переменных среды |
validate_certs boolean | При установке в Установка validate_certs=false крайне не рекомендуется; в качестве альтернативы, рассмотрите установку aws_ca_bundle вместо этого. Варианты:
|
Примечания
Примечание
- Внимание: Для модулей переменные среды и конфигурационные файлы считываются из контекста 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 целевой группы Возвращается: всегда Пример: |
|
target_group_type строка |
Тип целевой группы Возвращается: всегда Пример: |
|
targets сложный |
Список целевых экземпляров, связанных с этим идентификатором экземпляра Возвращается: всегда |
|
target_az строка |
Доступная зона, явно связанная с этим экземпляром Возвращается: когда зона доступности связана с этим экземпляром Пример: |
|
target_health сложный |
Описание состояния здоровья целевого экземпляра. Все возможные значения см. по следующей ссылке https://boto3.readthedocs.io/en/latest/reference/services/elbv2.html#ElasticLoadBalancingv2.Client.describe_target_health Возвращается: всегда |
|
description строка |
Описание состояния здоровья целевого экземпляра Возвращается: если state!=present Пример: |
|
reason строка |
Код причины состояния здоровья целевого экземпляра Возвращается: если state!=healthy Пример: |
|
state строка |
состояние здоровья Возвращается: всегда Пример: |
|
target_id строка |
идентификатор целевого экземпляра, относящийся к этому экземпляру Возвращается: всегда Пример: |
|
target_port строка |
порт, на котором прослушивает этот целевой экземпляр Возвращается: всегда Пример: |
Ссылки на коллекции
© 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