ali_instance – Create, Start, Stop, Restart or Terminate an Instance in ECS. Add or Remove Instance to/from a Security Group

From Get docs
Ansible/docs/2.8/modules/ali instance module


ali_instance – Create, Start, Stop, Restart or Terminate an Instance in ECS. Add or Remove Instance to/from a Security Group

New in version 2.8.


Synopsis

  • Create, start, stop, restart, modify or terminate ecs instances.
  • Add or remove ecs instances to/from security group.

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

allocate_public_ip

boolean

  • no

  • yes

Whether allocate a public ip for the new instance.


aliases: assign_public_ip

auto_renew

boolean

  • no

  • yes

Whether automate renew the charge of the instance.

auto_renew_period

-

  • 1
  • 2
  • 3
  • 6
  • 12

The duration of the automatic renew the charge of the instance. Required when auto_renew=True.

availability_zone

-

Aliyun availability zone ID in which to launch the instance. If it is not specified, it will be allocated by system automatically.


aliases: alicloud_zone

count

-

Default:

1

The number of the new instance. An integer value which indicates how many instances that match count_tag should be running. Instances are either created or terminated based on this value.

count_tag

-

count determines how many instances based on a specific tag criteria should be present. This can be expressed in multiple ways and is shown in the EXAMPLES section. The specified count_tag must already exist or be passed in as the instance_tags option. If it is not specified, it will be replaced by instance_name.

description

-

The description of ECS instance, which is a string of 2 to 256 characters. It cannot begin with http:// or https://.

force

boolean

  • no

  • yes

Whether the current operation needs to be execute forcibly.

host_name

-

Instance host name.

image_id

-

Image ID used to launch instances. Required when state=present and creating new ECS instances.


aliases: image

instance_charge_type

-

  • PrePaid
  • PostPaid

The charge type of the instance.

instance_ids

-

A list of instance ids. It is required when need to operate existing instances. If it is specified, count will lose efficacy.

instance_name

-

The name of ECS instance, which is a string of 2 to 128 Chinese or English characters. It must begin with an uppercase/lowercase letter or a Chinese character and can contain numerals, ".", "_" or "-". It cannot begin with http:// or https://.


aliases: name

instance_tags

-

A hash/dictionaries of instance tags, to add to the new instance or for starting/stopping instance by tag. {"key":"value"}


aliases: tags

instance_type

-

Instance type used to launch instances. Required when state=present and creating new ECS instances.


aliases: type

internet_charge_type

-

  • PayByBandwidth

  • PayByTraffic

Internet charge type of ECS instance.

key_name

-

The name of key pair which is used to access ECS instance in SSH.


aliases: keypair

max_bandwidth_in

-

Default:

200

Maximum incoming bandwidth from the public network, measured in Mbps (Megabits per second).

max_bandwidth_out

-

Default:

0

Maximum outgoing bandwidth to the public network, measured in Mbps (Megabits per second).

password

-

The password to login instance. After rebooting instances, modified password will take effect.

period

-

Default:

1

The charge duration of the instance, in month. Required when instance_charge_type=PrePaid.

The valid value are [1-9, 12, 24, 36].

security_groups

-

A list of security group IDs.

state

-

  • present

  • running
  • stopped
  • restarted
  • absent

The state of the instance after operating.

system_disk_category

-

  • cloud_efficiency

  • cloud_ssd

Category of the system disk.

system_disk_description

-

Description of the system disk.

system_disk_name

-

Name of the system disk.

system_disk_size

-

Default:

40

Size of the system disk, in GB. The valid values are 40~500.

user_data

-

User-defined data to customize the startup behaviors of an ECS instance and to pass data into an ECS instance. It only will take effect when launching the new ECS instances.

vswitch_id

-

The subnet ID in which to launch the instances (VPC).


aliases: subnet_id



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

# basic provisioning example vpc network
- name: basic provisioning example
  hosts: localhost
  vars:
    alicloud_access_key: <your-alicloud-access-key-id>
    alicloud_secret_key: <your-alicloud-access-secret-key>
    alicloud_region: cn-beijing
    image: ubuntu1404_64_40G_cloudinit_20160727.raw
    instance_type: ecs.n4.small
    vswitch_id: vsw-abcd1234
    assign_public_ip: True
    max_bandwidth_out: 10
    host_name: myhost
    password: mypassword
    system_disk_category: cloud_efficiency
    system_disk_size: 100
    internet_charge_type: PayByBandwidth
    security_groups: ["sg-f2rwnfh23r"]

    instance_ids: ["i-abcd12346", "i-abcd12345"]
    force: True

  tasks:
    - name: launch ECS instance in VPC network
      ali_instance:
        alicloud_access_key: '{{ alicloud_access_key }}'
        alicloud_secret_key: '{{ alicloud_secret_key }}'
        alicloud_region: '{{ alicloud_region }}'
        image: '{{ image }}'
        system_disk_category: '{{ system_disk_category }}'
        system_disk_size: '{{ system_disk_size }}'
        instance_type: '{{ instance_type }}'
        vswitch_id: '{{ vswitch_id }}'
        assign_public_ip: '{{ assign_public_ip }}'
        internet_charge_type: '{{ internet_charge_type }}'
        max_bandwidth_out: '{{ max_bandwidth_out }}'
        instance_tags:
            Name: created_one
        host_name: '{{ host_name }}'
        password: '{{ password }}'

    - name: with count and count_tag to create a number of instances
      ali_instance:
        alicloud_access_key: '{{ alicloud_access_key }}'
        alicloud_secret_key: '{{ alicloud_secret_key }}'
        alicloud_region: '{{ alicloud_region }}'
        image: '{{ image }}'
        system_disk_category: '{{ system_disk_category }}'
        system_disk_size: '{{ system_disk_size }}'
        instance_type: '{{ instance_type }}'
        assign_public_ip: '{{ assign_public_ip }}'
        security_groups: '{{ security_groups }}'
        internet_charge_type: '{{ internet_charge_type }}'
        max_bandwidth_out: '{{ max_bandwidth_out }}'
        instance_tags:
            Name: created_one
            Version: 0.1
        count: 2
        count_tag:
            Name: created_one
        host_name: '{{ host_name }}'
        password: '{{ password }}'

    - name: start instance
      ali_instance:
        alicloud_access_key: '{{ alicloud_access_key }}'
        alicloud_secret_key: '{{ alicloud_secret_key }}'
        alicloud_region: '{{ alicloud_region }}'
        instance_ids: '{{ instance_ids }}'
        state: 'running'

    - name: reboot instance forcibly
      ecs:
        alicloud_access_key: '{{ alicloud_access_key }}'
        alicloud_secret_key: '{{ alicloud_secret_key }}'
        alicloud_region: '{{ alicloud_region }}'
        instance_ids: '{{ instance_ids }}'
        state: 'restarted'
        force: '{{ force }}'

    - name: Add instances to an security group
      ecs:
        alicloud_access_key: '{{ alicloud_access_key }}'
        alicloud_secret_key: '{{ alicloud_secret_key }}'
        alicloud_region: '{{ alicloud_region }}'
        instance_ids: '{{ instance_ids }}'
        security_groups: '{{ security_groups }}'

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.


© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/ali_instance_module.html