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 |
| Whether allocate a public ip for the new instance. aliases: assign_public_ip |
auto_renew boolean |
| Whether automate renew the charge of the instance. |
auto_renew_period - |
| 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 |
| 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 - |
| 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 - |
| 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 - |
| The state of the instance after operating. |
system_disk_category - |
| 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
orALICLOUD_ACCESS_KEY_ID
,ALICLOUD_SECRET_KEY
orALICLOUD_SECRET_ACCESS_KEY
,ALICLOUD_REGION
orALICLOUD_REGION_ID
,ALICLOUD_SECURITY_TOKEN
-
ALICLOUD_REGION
orALICLOUD_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
- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]
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