community.general.ali_instance_info – Сбор информации о виртуальных машинах Alibaba Cloud ECS.
Примечание
Этот плагин входит в коллекцию community.general (версия 1.3.2).
Для его установки используйте: ansible-galaxy collection install community.general.
Чтобы использовать его в playbook, укажите: community.general.ali_instance_info.
Обзор
- Этот модуль извлекает данные из открытого API Alicloud. Модуль должен вызываться изнутри самой виртуальной машины ECS.
- Этот модуль вызывался
ali_instance_factsдо Ansible 2.9. Использование не изменилось.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- footmark >= 1.13.0
- python >= 3.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| alicloud_access_key строка | Ключ доступа к Alibaba Cloud. Если не задан, используется значение переменной окружения ALICLOUD_ACCESS_KEY, ALICLOUD_ACCESS_KEY_ID. псевдонимы: access_key_id, access_key | |
| alicloud_assume_role словарь | Если указан ARN роли, Ansible попытается принять эту роль, используя предоставленные учетные данные. Вложенный блок assume_role поддерживает alicloud_assume_role_arn, alicloud_assume_role_session_name, alicloud_assume_role_session_expiration и alicloud_assume_role_policy
псевдонимы: assume_role | |
| alicloud_assume_role_arn строка | ARN роли Alibaba Cloud. ARN роли, которую необходимо принять. Если ARN установлено в пустую строку, переключение ролей не выполняется. Поддерживает переменную окружения ALICLOUD_ASSUME_ROLE_ARN. ansible будет выполняться с предоставленными учетными данными. псевдонимы: assume_role_arn | |
| alicloud_assume_role_session_expiration целое число | Срок действия сеанса Alibaba Cloud. Время, по истечении которого установленный сеанс для принятия роли истекает. Допустимый диапазон значений 900–3600 секунд. По умолчанию 3600 (в этом случае Alicloud использует собственное значение по умолчанию). Поддерживает переменную окружения ALICLOUD_ASSUME_ROLE_SESSION_EXPIRATION псевдонимы: assume_role_session_expiration | |
| alicloud_assume_role_session_name строка | Имя сеанса Alibaba Cloud. Имя сеанса, которое следует использовать при принятии роли. Если опущено, в вызов AssumeRole передается «ansible» в качестве имени сеанса. Поддерживает переменную окружения ALICLOUD_ASSUME_ROLE_SESSION_NAME псевдонимы: assume_role_session_name | |
| alicloud_region строка / обязательно | Регион Alibaba Cloud для использования. Если не указан, используется значение переменной окружения ALICLOUD_REGION, ALICLOUD_REGION_ID. псевдонимы: region, region_id | |
| alicloud_secret_key строка | Секретный ключ Alibaba Cloud. Если не задан, используется значение переменной окружения ALICLOUD_SECRET_KEY, ALICLOUD_SECRET_ACCESS_KEY. псевдонимы: secret_access_key, secret_key | |
| alicloud_security_token строка | Токен безопасности Alibaba Cloud. Если не указан, используется значение переменной окружения ALICLOUD_SECURITY_TOKEN.псевдонимы: security_token | |
| availability_zone строка | (Устарело) Идентификатор зоны доступности Aliyun, в которой необходимо запустить экземпляр. Используйте вместо этого элемент фильтра «zone_id». псевдонимы: alicloud_zone | |
| ecs_role_name строка | Имя роли RAM, прикрепленное к экземпляру ECS для операций с API. Вы можете получить его в разделе «Управление доступом» консоли Alibaba Cloud. Если Ansible выполняется с экземпляра ECS с использованием роли RAM Instance, Ansible будет обращаться к метаданным http://100.100.100.200/latest/meta-data/ram/security-credentials/<ecs_role_name> для получения учетных данных STS. Это предпочтительный подход при выполнении на ECS, так как вы можете избежать жесткого кодирования учетных данных. Вместо этого они предоставляются Ansible по мере необходимости, что уменьшает вероятность утечки. псевдонимы: role_name | |
| filters словарь добавлен в версии 0.2.0 community.general | Словарь фильтров для применения. Каждый элемент словаря содержит ключ фильтра и значение фильтра. Ключи фильтров могут соответствовать всем параметрам запроса. Подробности параметров см. на https://www.alibabacloud.com/help/doc-detail/25506.htm. Ключи фильтров могут быть такими же, как имя параметра запроса, или иметь нижний регистр и использовать подчеркивание («_») или дефис («-») для соединения различных слов в одном параметре. «InstanceIds» должно быть списком, и он автоматически добавляется к instance_ids. «Tag.n.Key» и «Tag.n.Value» должны быть словарем, и вместо них используется tags. | |
| instance_ids список / элементы=строка | Список идентификаторов экземпляров ECS. псевдонимы: ids | |
| instance_names список / элементы=строка | (Устарело) Список имен экземпляров ECS. Используйте вместо этого элемент фильтра 'instance_name'. псевдонимы: names | |
| name_prefix строка добавлен в версии 0.2.0 community.general | Используйте префикс имени экземпляра для фильтрации экземпляров ECS. | |
| profile строка | Имя профиля Alicloud, заданное в файле общих учетных данных. Он также может быть получен из переменной окружения ALICLOUD_PROFILE. | |
| shared_credentials_file строка | Путь к файлу общих учетных данных. Он также может быть получен из переменной окружения ALICLOUD_SHARED_CREDENTIALS_FILE. Если это не задано, а профиль указан, будет использоваться ~/.aliyun/config.json. | |
| tags словарь | Хеш/словари меток экземпляра. {"key":"value"}
псевдонимы: instance_tags |
Примечания
Примечание
- Если параметры не заданы в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета
ALICLOUD_ACCESS_KEYилиALICLOUD_ACCESS_KEY_ID,ALICLOUD_SECRET_KEYилиALICLOUD_SECRET_ACCESS_KEY,ALICLOUD_REGIONилиALICLOUD_REGION_ID,ALICLOUD_SECURITY_TOKEN,ALICLOUD_ECS_ROLE_NAME,ALICLOUD_SHARED_CREDENTIALS_FILE,ALICLOUD_PROFILE,ALICLOUD_ASSUME_ROLE_ARN,ALICLOUD_ASSUME_ROLE_SESSION_NAME,ALICLOUD_ASSUME_ROLE_SESSION_EXPIRATION, -
ALICLOUD_REGIONилиALICLOUD_REGION_IDобычно можно использовать для указания региона ALICLOUD, когда это необходимо, но это также можно настроить в файле конфигурации footmark
Примеры
# Fetch instances details according to setting different filters
- name: Find all instances in the specified region
community.general.ali_instance_info:
register: all_instances
- name: Find all instances based on the specified ids
community.general.ali_instance_info:
instance_ids:
- "i-35b333d9"
- "i-ddav43kd"
register: instances_by_ids
- name: Find all instances based on the specified name_prefix
community.general.ali_instance_info:
name_prefix: "ecs_instance_"
register: instances_by_name_prefix
- name: Find instances based on tags
community.general.ali_instance_info:
tags:
Test: "add"
Значения возврата
Общие значения возврата документированы здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание | ||
|---|---|---|---|---|
| ids список / элементы=строка | всегда | Список идентификаторов экземпляров ECS Пример: ['i-12345er', 'i-3245fs'] | ||
| instances сложный тип | всегда | Список экземпляров ECS | ||
| availability_zone строка | всегда | Зона доступности, в которой находится экземпляр. Пример: cn-beijing-a | ||
| block_device_mappings сложный тип | всегда | Любые записи отображения блочных устройств для экземпляра. | ||
| attach_time строка | всегда | Отметка времени, когда началось подключение. Пример: 2018-06-25T04:08:26Z | ||
| delete_on_termination булево | всегда | Указывает, будет ли том удален при завершении работы экземпляра. Пример: True | ||
| device_name строка | всегда | Имя устройства, доступное для экземпляра (например, /dev/xvda). Пример: /dev/xvda | ||
| status строка | всегда | Состояние подключения. Пример: in_use | ||
| volume_id строка | всегда | Идентификатор облачного диска. Пример: d-2zei53pjsi117y6gf9t6 | ||
| cpu целое число | всегда | Количество ядер процессора экземпляра. Пример: 4 | ||
| creation_time строка | всегда | Время создания экземпляра. Пример: 2018-06-25T04:08Z | ||
| description строка | всегда | Описание экземпляра. Пример: my ansible instance | ||
| eip сложный тип | всегда | Атрибуты EIP, связанных с экземпляром. | ||
| allocation_id строка | всегда | Идентификатор EIP. Пример: eip-12345 | ||
| internet_charge_type строка | всегда | Тип оплаты интернета EIP. Пример: paybybandwidth | ||
| ip_address строка | всегда | Адрес EIP. Пример: 42.10.2.2 | ||
| expired_time строка | всегда | Время истечения срока действия экземпляра. Пример: 2099-12-31T15:59Z | ||
| gpu сложный тип | всегда | Атрибуты GPU экземпляра. | ||
| amount целое число | всегда | Количество GPU. | ||
| spec строка | всегда | Спецификация GPU. | ||
| host_name строка | всегда | Имя хоста экземпляра. Пример: iZ2zewaoZ | ||
| id строка | всегда | Псевдоним instance_id. Пример: i-abc12345 | ||
| image_id строка | всегда | Идентификатор образа, используемого для запуска экземпляра. Пример: m-0011223344 | ||
| inner_ip_address строка | всегда | Внутренний IPv4-адрес классического экземпляра. Пример: 10.0.0.2 | ||
| instance_charge_type строка | всегда | Тип оплаты экземпляра. Пример: PostPaid | ||
| instance_id строка | всегда | Идентификатор ресурса экземпляра ECS. Пример: i-abc12345 | ||
| instance_name строка | всегда | Имя экземпляра. Пример: my-ecs | ||
| instance_type строка | всегда | Тип экземпляра. Пример: ecs.sn1ne.xlarge | ||
| instance_type_family строка | всегда | Семейство типов экземпляров, к которому относится экземпляр. Пример: ecs.sn1ne | ||
| internet_charge_type строка | всегда | Способ оплаты сетевой пропускной способности. Пример: PayByBandwidth | ||
| internet_max_bandwidth_in целое число | всегда | Максимальная входящая пропускная способность из интернета. Пример: 200 | ||
| internet_max_bandwidth_out целое число | всегда | Максимальная исходящая пропускная способность в интернет. Пример: 20 | ||
| io_optimized булево | всегда | Указывает, оптимизирован ли экземпляр для ввода-вывода EBS. | ||
| memory целое число | всегда | Объем памяти экземпляра. Пример: 8192 | ||
| network_interfaces сложный тип | всегда | Один или несколько сетевых интерфейсов для экземпляра. | ||
| mac_address строка | всегда | MAC-адрес. Пример: 00:11:22:33:44:55 | ||
| network_interface_id строка | всегда | Идентификатор сетевого интерфейса. Пример: eni-01234567 | ||
| primary_ip_address строка | всегда | Основной IPv4-адрес сетевого интерфейса внутри vswitch. Пример: 10.0.0.1 | ||
| osname строка | всегда | Имя операционной системы экземпляра. Пример: CentOS | ||
| ostype строка | всегда | Тип операционной системы экземпляра. Пример: linux | ||
| private_ip_address строка | всегда | IPv4-адрес сетевого интерфейса внутри подсети. Пример: 10.0.0.1 | ||
| public_ip_address строка | всегда | Публичный IPv4-адрес, назначенный экземпляру или адресу EIP. Пример: 43.0.0.1 | ||
| resource_group_id строка | всегда | Идентификатор группы ресурсов, к которой принадлежит экземпляр. Пример: my-ecs-group | ||
| security_groups список / элементы=словарь | всегда | Один или несколько наборов правил безопасности для экземпляра. | ||
| group_id строка | всегда | Идентификатор набора правил безопасности. Пример: sg-0123456 | ||
| group_name string | always | Имя группы безопасности. Пример: my-security-group | ||
| status string | always | Текущий статус экземпляра. Пример: running | ||
| tags dictionary | always | Любые теги, назначенные экземпляру. | ||
| vpc_id string | always | ID VPC, в котором находится экземпляр. Пример: vpc-0011223344 | ||
| vswitch_id string | always | ID vswitch, в котором запущен экземпляр. Пример: vsw-dew00abcdef | ||
Авторы
- He Guimin (@xiaozhu36)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/ali_instance_info_module.html