ali_instance_info – Gather information on instances of Alibaba Cloud ECS

New in version 2.8.

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.

Aliases: ali_instance_facts

Requirements

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

  • footmark >= 1.1.16
  • python >= 2.6

Parameters

Parameter Choices/Defaults Comments
alicloud_access_key
string
Aliyun 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_region
string
The Aliyun 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
Aliyun 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 Aliyun Cloud security token.
If not specified then the value of environment variable ALICLOUD_SECURITY_TOKEN will be used instead.

aliases: security_token
availability_zone
-
Aliyun availability zone ID in which to launch the instance

aliases: alicloud_zone
instance_ids
-
A list of ECS instance ids.

aliases: ids
instance_names
-
A list of ECS instance names.

aliases: names
instance_tags
-
A hash/dictionaries of instance tags. {"key":"value"}

aliases: 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_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: fetch instances details example
  hosts: localhost
  vars:
    alicloud_access_key: <your-alicloud-access-key>
    alicloud_secret_key: <your-alicloud-secret-key>
    alicloud_region: cn-beijing
    availability_zone: cn-beijing-a

  tasks:
    - name: Find all instances in the specified region
      ali_instance_info:
        alicloud_access_key: '{{ alicloud_access_key }}'
        alicloud_secret_key: '{{ alicloud_secret_key }}'
        alicloud_region: '{{ alicloud_region }}'
      register: all_instances

    - name: Find all instances based on the specified ids
      ali_instance_info:
        alicloud_access_key: '{{ alicloud_access_key }}'
        alicloud_secret_key: '{{ alicloud_secret_key }}'
        alicloud_region: '{{ alicloud_region }}'
        instance_ids:
          - "i-35b333d9"
          - "i-ddav43kd"
      register: instances_by_ids

    - name: Find all instances based on the specified names/name-prefixes
      ali_instance_info:
        alicloud_access_key: '{{ alicloud_access_key }}'
        alicloud_secret_key: '{{ alicloud_secret_key }}'
        alicloud_region: '{{ alicloud_region }}'
        instance_names:
          - "ecs_instance-1"
          - "ecs_instance_2"
      register: instances_by_ids

Return Values

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

Key Returned Description
ids
list
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
  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

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 of complex
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
dictionary
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


Status

Authors

  • He Guimin (@xiaozhu36)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.