community.general.ali_instance 模块 – 在 ECS 中创建、启动、停止、重启或终止实例;向安全组添加或从中删除实例
注意
此模块是 community.general 集合 (版本 10.1.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install community.general
。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定: community.general.ali_instance
。
摘要
创建、启动、停止、重启、修改或终止 ECS 实例。
向安全组添加或从中删除 ECS 实例。
要求
执行此模块的主机需要以下要求。
Python >= 3.6
footmark >= 1.19.0
参数
参数 |
注释 |
---|---|
阿里云访问密钥。如果未设置,则使用环境变量 |
|
如果提供角色 ARN,Ansible 将尝试使用提供的凭据来承担此角色。 嵌套的 assume_role 块支持 |
|
阿里云 |
|
阿里云 |
|
阿里云 session_name。承担角色时使用的会话名称。如果省略,则将“ansible”作为会话名称传递给 AssumeRole 调用。它支持环境变量 |
|
要使用的阿里云区域。如果未指定,则使用环境变量 |
|
阿里云密钥。如果未设置,则使用环境变量 |
|
阿里云安全令牌。如果未指定,则使用环境变量 |
|
是否为新实例分配公网IP。 选项
|
|
是否自动续费实例。 选项
|
|
启动实例的阿里云可用区ID。如果未指定,系统将自动分配。 |
|
新实例的数量。一个整数,表示应运行与 默认值: |
|
|
|
指定是否发送试运行请求。 如果 如果 选项
|
|
附加到ECS实例上用于API操作的RAM角色名称。您可以在阿里云控制台的“访问控制”部分中检索此信息。 如果您从使用RAM角色的RAM实例的ECS实例运行Ansible,Ansible将仅访问元数据 http://100.100.100.200/latest/meta-data/ram/security-credentials/<ecs_role_name> 以获取STS凭据。在ECS中运行时,这是优于任何其他方法的首选方法,因为您可以避免硬编码凭据。相反,这些凭据由Ansible即时租赁,从而减少了泄漏的可能性。 |
|
当前操作是否需要强制执行。 选项
|
|
实例主机名。不支持有序主机名。 |
|
用于启动实例的镜像ID。当 |
|
更改实例计费类型时是否更改实例磁盘计费类型。 选项
|
|
实例的计费类型。 选项
|
|
实例ID列表。需要对现有实例进行操作时必填。如果指定此参数, |
|
用于启动实例的实例类型。当 |
|
ECS实例的互联网计费类型。 选项
|
|
用于通过SSH访问ECS实例的密钥对名称。 |
|
来自公网的最大入带宽,以 Mbps(兆比特每秒)为单位。 默认值: |
|
到公网的最大出带宽,以 Mbps(兆比特每秒)为单位。当 默认值: |
|
登录实例的密码。重启实例后,修改后的密码生效。 |
|
这是在共享凭据文件中设置的阿里云配置文件名称。它也可以从 |
|
删除实例上不在任务中指定的任何标签。如果为 True,则意味着您必须在影响实例的每个任务上指定所有所需的标签。 选项
|
|
实例RAM角色的名称。 |
|
安全组ID列表。 |
|
这是共享凭据文件的路径。它也可以从 如果未设置此参数且指定了配置文件,则将使用 |
|
抢占式实例的最大每小时价格。此参数最多支持三位小数,并在 SpotStrategy 参数设置为 SpotWithPriceLimit 时生效。 |
|
按需付费实例的竞价模式。当 InstanceChargeType 设置为 PostPaid 时,此参数有效。 选项
|
|
操作后实例的状态。 选项
|
|
系统盘的类别。 选项
|
|
系统盘的描述。 |
|
系统盘的名称。 |
|
系统盘的大小,以GB为单位。有效值为40~500。 默认值: |
|
实例标签的哈希/字典,用于添加到新实例或按标签启动/停止实例。 |
|
指定是否为主机名添加顺序后缀。顺序后缀范围为001到999。 选项
|
|
用户定义的数据,用于自定义ECS实例的启动行为并将数据传递到ECS实例。只有在启动新的ECS实例时才会生效。 |
|
启动实例(VPC)所在的子网 ID。 |
属性
属性 |
支持 |
描述 |
---|---|---|
支持:不支持 |
可以在 |
|
支持:不支持 |
在 diff 模式下,将返回有关已更改内容(或可能需要在 |
备注
注意
如果模块中未设置参数,则可以按优先级递减的顺序使用以下环境变量:
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
通常可用于指定阿里云区域(如果需要),但也可以在脚印配置文件中配置。
示例
# 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
community.general.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 }}'
tags:
Name: created_one
host_name: '{{ host_name }}'
password: '{{ password }}'
- name: With count and count_tag to create a number of instances
community.general.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 }}'
tags:
Name: created_one
Version: 0.1
count: 2
count_tag:
Name: created_one
host_name: '{{ host_name }}'
password: '{{ password }}'
- name: Start instance
community.general.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 }}'
返回值
常用返回值已在此处记录,以下是此模块独有的字段
键 |
描述 |
---|---|
ECS 实例 ID 列表 返回值:始终 示例: |
|
ECS 实例列表 返回值:始终 |
|
实例所在的可用区。 返回值:始终 示例: |
|
实例的任何块设备映射条目。 返回值:始终 |
|
附件启动的时间戳。 返回值:始终 示例: |
|
指示在实例终止时是否删除卷。 返回值:始终 示例: |
|
公开给实例的设备名称(例如,/dev/xvda)。 返回值:始终 示例: |
|
附加状态。 返回值:始终 示例: |
|
云盘的ID。 返回值:始终 示例: |
|
实例的CPU核心数。 返回值:始终 示例: |
|
创建实例的时间。 返回值:始终 示例: |
|
实例描述。 返回值:始终 示例: |
|
与实例关联的EIP的属性。 返回值:始终 |
|
EIP 的 ID。 返回值:始终 示例: |
|
EIP 的互联网计费类型。 返回值:始终 示例: |
|
EIP 地址。 返回值:始终 示例: |
|
实例过期的时间。 返回值:始终 示例: |
|
实例 GPU 的属性。 返回值:始终 |
|
GPU 的数量。 返回值:始终 示例: |
|
GPU 的规格。 返回值:始终 示例: |
|
实例的主机名。 返回值:始终 示例: |
|
instance_id 的别名。 返回值:始终 示例: |
|
用于启动实例的镜像 ID。 返回值:始终 示例: |
|
经典实例的内部 IPv4 地址。 返回值:始终 示例: |
|
实例计费类型。 返回值:始终 示例: |
|
ECS 实例资源 ID。 返回值:始终 示例: |
|
实例名称。 返回值:始终 示例: |
|
正在运行的实例的实例类型。 返回值:始终 示例: |
|
实例所属的实例类型系列。 返回值:始终 示例: |
|
网络带宽的计费方式。 返回值:始终 示例: |
|
来自互联网网络的最大入站带宽。 返回值:始终 示例: |
|
来自互联网网络的最大入站带宽。 返回值:始终 示例: |
|
指示实例是否针对 EBS I/O 进行了优化。 返回值:始终 示例: |
|
实例的内存大小。 返回值:始终 示例: |
|
实例的一个或多个网络接口。 返回值:始终 |
|
MAC 地址。 返回值:始终 示例: |
|
网络接口的 ID。 返回值:始终 示例: |
|
vswitch 中网络接口的主要 IPv4 地址。 返回值:始终 示例: |
|
实例拥有的操作系统名称。 返回值:始终 示例: |
|
实例拥有的操作系统类型。 返回值:始终 示例: |
|
子网内网络接口的 IPv4 地址。 返回值:始终 示例: |
|
分配给实例的公共 IPv4 地址或 eip 地址 返回值:始终 示例: |
|
实例所属资源组的 ID。 返回值:始终 示例: |
|
实例的一个或多个安全组。 返回值:始终 |
|
安全组的 ID。 返回值:始终 示例: |
|
安全组的名称。 返回值:始终 示例: |
|
抢占式实例的最大每小时价格。 返回值:始终 示例: |
|
按需付费实例的竞价模式。 返回值:始终 示例: |
|
实例的当前状态。 返回值:始终 示例: |
|
分配给实例的任何标签。 返回值:始终 |
|
用户定义数据。 返回值:始终 |
|
实例所在的 VPC 的 ID。 返回值:始终 示例: |
|
实例在其上运行的 vswitch 的 ID。 返回值:始终 示例: |