community.general.ali_instance_info – Gather information on instances of Alibaba Cloud ECS.

From Get docs
Ansible/docs/2.10/collections/community/general/ali instance info module


community.general.ali_instance_info – Gather information on instances of Alibaba Cloud ECS.

Note

This plugin is part of the community.general collection (version 1.3.2).

To install it use: ansible-galaxy collection install community.general.

To use it in a playbook, specify: community.general.ali_instance_info.


Synopsis

  • This module fetches data from the Open API in Alicloud. The module must be called from within the ECS instance itself.
  • This module was called ali_instance_facts before Ansible 2.9. The usage did not change.

Requirements

The below requirements are needed on the host that executes this module.

  • footmark >= 1.13.0
  • python >= 3.6

Parameters

Parameter Choices/Defaults Comments

alicloud_access_key

string

Alibaba Cloud access key. If not set then the value of environment variable ALICLOUD_ACCESS_KEY, ALICLOUD_ACCESS_KEY_ID will be used instead.


aliases: access_key_id, access_key

alicloud_assume_role

dictionary

If provided with a role ARN, Ansible will attempt to assume this role using the supplied credentials.

The nested assume_role block supports alicloud_assume_role_arn, alicloud_assume_role_session_name, alicloud_assume_role_session_expiration and alicloud_assume_role_policy


aliases: assume_role

alicloud_assume_role_arn

string

The Alibaba Cloud role_arn. The ARN of the role to assume. If ARN is set to an empty string, it does not perform role switching. It supports environment variable ALICLOUD_ASSUME_ROLE_ARN. ansible will execute with provided credentials.


aliases: assume_role_arn

alicloud_assume_role_session_expiration

integer

The Alibaba Cloud session_expiration. The time after which the established session for assuming role expires. Valid value range 900-3600 seconds. Default to 3600 (in this case Alicloud use own default value). It supports environment variable ALICLOUD_ASSUME_ROLE_SESSION_EXPIRATION


aliases: assume_role_session_expiration

alicloud_assume_role_session_name

string

The Alibaba Cloud session_name. The session name to use when assuming the role. If omitted, 'ansible' is passed to the AssumeRole call as session name. It supports environment variable ALICLOUD_ASSUME_ROLE_SESSION_NAME


aliases: assume_role_session_name

alicloud_region

string / required

The Alibaba Cloud region to use. If not specified then the value of environment variable ALICLOUD_REGION, ALICLOUD_REGION_ID will be used instead.


aliases: region, region_id

alicloud_secret_key

string

Alibaba Cloud secret key. If not set then the value of environment variable ALICLOUD_SECRET_KEY, ALICLOUD_SECRET_ACCESS_KEY will be used instead.


aliases: secret_access_key, secret_key

alicloud_security_token

string

The Alibaba Cloud security token. If not specified then the value of environment variable ALICLOUD_SECURITY_TOKEN will be used instead.


aliases: security_token

availability_zone

string

(Deprecated) Aliyun availability zone ID in which to launch the instance. Please use filter item 'zone_id' instead.


aliases: alicloud_zone

ecs_role_name

string

The RAM Role Name attached on a ECS instance for API operations. You can retrieve this from the 'Access Control' section of the Alibaba Cloud console.

If you're running Ansible from an ECS instance with RAM Instance using RAM Role, Ansible will just access the metadata http://100.100.100.200/latest/meta-data/ram/security-credentials/ to obtain the STS credential. This is a preferred approach over any other when running in ECS as you can avoid hard coding credentials. Instead these are leased on-the-fly by Ansible which reduces the chance of leakage.


aliases: role_name

filters

dictionary

added in 0.2.0 of community.general

A dict of filters to apply. Each dict item consists of a filter key and a filter value. The filter keys can be all of request parameters. See https://www.alibabacloud.com/help/doc-detail/25506.htm for parameter details. Filter keys can be same as request parameter name or be lower case and use underscore ("_") or dash ("-") to connect different words in one parameter. 'InstanceIds' should be a list and it will be appended to instance_ids automatically. 'Tag.n.Key' and 'Tag.n.Value' should be a dict and using tags instead.

instance_ids

list / elements=string

A list of ECS instance ids.


aliases: ids

instance_names

list / elements=string

(Deprecated) A list of ECS instance names. Please use filter item 'instance_name' instead.


aliases: names

name_prefix

string

added in 0.2.0 of community.general

Use a instance name prefix to filter ecs instances.

profile

string

This is the Alicloud profile name as set in the shared credentials file. It can also be sourced from the ALICLOUD_PROFILE environment variable.

shared_credentials_file

string

This is the path to the shared credentials file. It can also be sourced from the ALICLOUD_SHARED_CREDENTIALS_FILE environment variable.

If this is not set and a profile is specified, ~/.aliyun/config.json will be used.

tags

dictionary

A hash/dictionaries of instance tags. {"key":"value"}


aliases: instance_tags



Notes

Note

  • If parameters are not set within the module, the following environment variables can be used in decreasing order of precedence ALICLOUD_ACCESS_KEY or ALICLOUD_ACCESS_KEY_ID, ALICLOUD_SECRET_KEY or ALICLOUD_SECRET_ACCESS_KEY, ALICLOUD_REGION or 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 or ALICLOUD_REGION_ID can be typically be used to specify the ALICLOUD region, when required, but this can also be configured in the footmark config file


Examples

# 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"

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description

ids

list / elements=string

always

List of ECS instance IDs


Sample:

['i-12345er', 'i-3245fs']

instances

complex

always

List of ECS instances


availability_zone

string

always

The availability zone of the instance is in.


Sample:

cn-beijing-a

block_device_mappings

complex

always

Any block device mapping entries for the instance.


attach_time

string

always

The time stamp when the attachment initiated.


Sample:

2018-06-25T04:08:26Z

delete_on_termination

boolean

always

Indicates whether the volume is deleted on instance termination.


Sample:

True

device_name

string

always

The device name exposed to the instance (for example, /dev/xvda).


Sample:

/dev/xvda

status

string

always

The attachment state.


Sample:

in_use

volume_id

string

always

The ID of the cloud disk.


Sample:

d-2zei53pjsi117y6gf9t6

cpu

integer

always

The CPU core count of the instance.


Sample:

4

creation_time

string

always

The time the instance was created.


Sample:

2018-06-25T04:08Z

description

string

always

The instance description.


Sample:

my ansible instance

eip

complex

always

The attribution of EIP associated with the instance.


allocation_id

string

always

The ID of the EIP.


Sample:

eip-12345

internet_charge_type

string

always

The internet charge type of the EIP.


Sample:

paybybandwidth

ip_address

string

always

EIP address.


Sample:

42.10.2.2

expired_time

string

always

The time the instance will expire.


Sample:

2099-12-31T15:59Z

gpu

complex

always

The attribution of instance GPU.


amount

integer

always

The count of the GPU.


spec

string

always

The specification of the GPU.


host_name

string

always

The host name of the instance.


Sample:

iZ2zewaoZ

id

string

always

Alias of instance_id.


Sample:

i-abc12345

image_id

string

always

The ID of the image used to launch the instance.


Sample:

m-0011223344

inner_ip_address

string

always

The inner IPv4 address of the classic instance.


Sample:

10.0.0.2

instance_charge_type

string

always

The instance charge type.


Sample:

PostPaid

instance_id

string

always

ECS instance resource ID.


Sample:

i-abc12345

instance_name

string

always

The name of the instance.


Sample:

my-ecs

instance_type

string

always

The instance type of the running instance.


Sample:

ecs.sn1ne.xlarge

instance_type_family

string

always

The instance type family of the instance belongs.


Sample:

ecs.sn1ne

internet_charge_type

string

always

The billing method of the network bandwidth.


Sample:

PayByBandwidth

internet_max_bandwidth_in

integer

always

Maximum incoming bandwidth from the internet network.


Sample:

200

internet_max_bandwidth_out

integer

always

Maximum incoming bandwidth from the internet network.


Sample:

20

io_optimized

boolean

always

Indicates whether the instance is optimized for EBS I/O.


memory

integer

always

Memory size of the instance.


Sample:

8192

network_interfaces

complex

always

One or more network interfaces for the instance.


mac_address

string

always

The MAC address.


Sample:

00:11:22:33:44:55

network_interface_id

string

always

The ID of the network interface.


Sample:

eni-01234567

primary_ip_address

string

always

The primary IPv4 address of the network interface within the vswitch.


Sample:

10.0.0.1

osname

string

always

The operation system name of the instance owned.


Sample:

CentOS

ostype

string

always

The operation system type of the instance owned.


Sample:

linux

private_ip_address

string

always

The IPv4 address of the network interface within the subnet.


Sample:

10.0.0.1

public_ip_address

string

always

The public IPv4 address assigned to the instance or eip address


Sample:

43.0.0.1

resource_group_id

string

always

The id of the resource group to which the instance belongs.


Sample:

my-ecs-group

security_groups

list / elements=dictionary

always

One or more security groups for the instance.


group_id

string

always

The ID of the security group.


Sample:

sg-0123456

group_name

string

always

The name of the security group.


Sample:

my-security-group

status

string

always

The current status of the instance.


Sample:

running

tags

dictionary

always

Any tags assigned to the instance.


vpc_id

string

always

The ID of the VPC the instance is in.


Sample:

vpc-0011223344

vswitch_id

string

always

The ID of the vswitch in which the instance is running.


Sample:

vsw-dew00abcdef




Authors

  • 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