community.general.hwc_ecs_instance 模块 – 在华为云中创建 Ecs/Instance 资源

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,请参阅 需求 以了解详细信息。

要在剧本中使用它,请指定:community.general.hwc_ecs_instance

community.general 0.2.0 中的新增功能

概要

  • 实例管理。

需求

执行此模块的主机需要以下需求。

  • keystoneauth1 >= 3.6.0

参数

参数

注释

admin_pass

字符串

指定使用密码身份验证登录 ECS 的管理员帐户的初始登录密码。Linux 管理员是 root,Windows 管理员是 Administrator。密码复杂性要求,包含 8 到 26 个字符。密码必须至少包含以下三种字符类型:“大写字母、小写字母、数字和特殊字符 (!@$%^-_=+[{}]:,./?)”。密码不能包含用户名或反向的用户名。Windows ECS 密码不能包含用户名、反向的用户名或用户名中超过两个连续的字符。

availability_zone

字符串 / 必需

指定 ECS 所在 AZ 的名称。

data_volumes

列表 / 元素=字典

指定 ECS 实例的数据磁盘。

device

字符串

指定磁盘设备名称。

volume_id

字符串 / 必需

指定磁盘 ID。

description

字符串

指定 ECS 的描述,默认为空字符串。最多可包含 85 个字符。不能包含特殊字符,例如 < 和 >。

domain

字符串 / 必需

要限定范围的域的名称 (Identity v3)。

目前仅支持域名,不支持域 ID。

eip_id

字符串

指定分配给 ECS 的弹性 IP 地址的 ID。只有处于 DOWN 状态的弹性 IP 地址才能被分配。

enable_auto_recovery

布尔值

指定是否在 ECS 上启用自动恢复。

选项

  • false

  • true

enterprise_project_id

字符串

指定 ECS 所属的企业项目的 ID。

flavor_name

字符串 / 必需

指定系统类型的名称。

id

字符串

要管理的资源的 ID。

identity_endpoint

字符串 / 必需

身份验证 URL。

image_id

字符串 / 必需

指定系统镜像的 ID。

name

字符串 / 必需

指定 ECS 名称。值要求包含 1 到 64 个字符,包括字母、数字、下划线 (_)、连字符 (-)、句点 (.)。

nics

列表 / 元素=字典 / 必需

指定 ECS 的 NIC 信息。约束条件:NIC 的网络必须属于 vpc_id 指定的 VPC。最多可以将 12 个 NIC 附加到一个 ECS。

ip_address

字符串 / 必需

指定 NIC 的 IP 地址。该值为 IPv4 地址。其值必须是子网网络段中未使用的 IP 地址。

subnet_id

字符串 / 必需

指定子网的 ID。

password

字符串 / 必需

登录密码。

project

字符串 / 必需

租户 (Identity v2) 或项目 (Identity v3) 的名称。

目前仅支持项目名称,不支持项目 ID。

region

字符串

项目所属的区域。

root_volume

字典 / 必需

指定 ECS 系统磁盘的配置。

size

整数

指定系统磁盘大小(以 GB 为单位)。取值范围为 1 到 1024。系统磁盘大小必须大于或等于镜像支持的最小系统磁盘大小(镜像的 min_disk 属性)。如果未指定此参数或将其设置为 0,则默认系统磁盘大小为镜像中系统磁盘的最小值(镜像的 min_disk 属性)。

snapshot_id

字符串

指定快照 ID 或完整 ECS 镜像中包含的原始数据磁盘的 ID。

volume_type

字符串 / 必需

指定 ECS 系统磁盘类型。

SATA 是普通 I/O 磁盘类型。

SAS 是高 I/O 磁盘类型。

SSD 是超高 I/O 磁盘类型。

co-p1 是高 I/O(性能优化型 I)磁盘类型。

uh-l1 是超高 I/O(延迟优化型)磁盘类型。

注意:对于 HANA、HL1 和 HL2 ECS,请使用 co-p1 和 uh-l1 磁盘。对于其他 ECS,请不要使用 co-p1 或 uh-l1 磁盘。

security_groups

列表 / 元素=字符串

指定ECS的安全组。如果此参数留空,则默认情况下会将默认安全组绑定到ECS。

server_metadata

字典

指定要创建的ECS的元数据。

server_tags

字典

指定ECS的标签。创建ECS时,一个ECS最多支持10个标签。

ssh_key_name

字符串

指定用于登录ECS的SSH密钥的名称。

state

字符串

给定对象是否应该存在于华为云中。

选项

  • "present" ← (默认)

  • "absent"

timeouts

字典

每个操作的超时时间。

默认值: {}

create

字符串

创建操作的超时时间。

默认值: "30m"

delete

字符串

删除操作的超时时间。

默认值: "30m"

update

字符串

更新操作的超时时间。

默认值: "30m"

user

字符串 / 必需

用于登录的用户名。

目前仅支持用户名,不支持用户ID。

user_data

字符串

指定在ECS创建过程中注入的用户数据。可以注入文本、文本文件和gzip文件。要注入的内容必须使用base64编码。要注入的内容(编码前)的最大大小为32 KB。对于Linux ECS,当使用adminPass时,此参数无效。

vpc_id

字符串 / 必需

指定ECS所属的VPC的ID。

属性

属性

支持

描述

check_mode

支持:完全支持

可以在check_mode下运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:不支持

在差异模式下,将返回关于已更改内容(或可能需要在check_mode中更改的内容)的详细信息。

备注

注意

  • 对于身份验证,您可以使用ANSIBLE_HWC_IDENTITY_ENDPOINT环境变量设置identity_endpoint。

  • 对于身份验证,您可以使用ANSIBLE_HWC_USER环境变量设置user。

  • 对于身份验证,您可以使用ANSIBLE_HWC_PASSWORD环境变量设置password。

  • 对于身份验证,您可以使用ANSIBLE_HWC_DOMAIN环境变量设置domain。

  • 对于身份验证,您可以使用ANSIBLE_HWC_PROJECT环境变量设置project。

  • 对于身份验证,您可以使用ANSIBLE_HWC_REGION环境变量设置region。

  • 只有在未设置playbook值时,才会使用环境变量值。

示例

# create an ecs instance
- name: Create a vpc
  hwc_network_vpc:
    cidr: "192.168.100.0/24"
    name: "ansible_network_vpc_test"
  register: vpc
- name: Create a subnet
  hwc_vpc_subnet:
    gateway_ip: "192.168.100.32"
    name: "ansible_network_subnet_test"
    dhcp_enable: true
    vpc_id: "{{ vpc.id }}"
    cidr: "192.168.100.0/26"
  register: subnet
- name: Create a eip
  hwc_vpc_eip:
    dedicated_bandwidth:
      charge_mode: "traffic"
      name: "ansible_test_dedicated_bandwidth"
      size: 1
    type: "5_bgp"
  register: eip
- name: Create a disk
  hwc_evs_disk:
    availability_zone: "cn-north-1a"
    name: "ansible_evs_disk_test"
    volume_type: "SATA"
    size: 10
  register: disk
- name: Create an instance
  community.general.hwc_ecs_instance:
    data_volumes:
      - volume_id: "{{ disk.id }}"
    enable_auto_recovery: false
    eip_id: "{{ eip.id }}"
    name: "ansible_ecs_instance_test"
    availability_zone: "cn-north-1a"
    nics:
      - subnet_id: "{{ subnet.id }}"
        ip_address: "192.168.100.33"
      - subnet_id: "{{ subnet.id }}"
        ip_address: "192.168.100.34"
    server_tags:
      my_server: "my_server"
    image_id: "8da46d6d-6079-4e31-ad6d-a7167efff892"
    flavor_name: "s3.small.1"
    vpc_id: "{{ vpc.id }}"
    root_volume:
      volume_type: "SAS"

返回值

常用的返回值已在此处记录,以下是此模块特有的字段

Key

描述

admin_pass

字符串

指定使用密码身份验证登录ECS的管理员帐户的初始登录密码。Linux管理员是root,Windows管理员是Administrator。密码复杂性要求为8到26个字符。密码必须至少包含以下三种字符类型:“大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{}]:,./?)”。密码不能包含用户名或反转的用户名。Windows ECS密码不能包含用户名、反转的用户名或用户名中超过两个连续的字符。

返回:成功

availability_zone

字符串

指定 ECS 所在 AZ 的名称。

返回:成功

config_drive

字符串

指定配置驱动器。

返回:成功

created

字符串

指定ECS的创建时间。

返回:成功

data_volumes

列表 / 元素=字符串

指定 ECS 实例的数据磁盘。

返回:成功

device

字符串

指定磁盘设备名称。

返回:成功

volume_id

字符串

指定磁盘 ID。

返回:成功

description

字符串

指定 ECS 的描述,默认为空字符串。最多可包含 85 个字符。不能包含特殊字符,例如 < 和 >。

返回:成功

disk_config_type

字符串

指定磁盘配置类型。MANUAL是不扩展镜像空间。AUTO是系统磁盘的镜像空间将扩展到与flavor相同。

返回:成功

eip_id

字符串

指定分配给 ECS 的弹性 IP 地址的 ID。只有处于 DOWN 状态的弹性 IP 地址才能被分配。

返回:成功

enable_auto_recovery

布尔值

指定是否在 ECS 上启用自动恢复。

返回:成功

enterprise_project_id

字符串

指定 ECS 所属的企业项目的 ID。

返回:成功

flavor_name

字符串

指定系统类型的名称。

返回:成功

host_name

字符串

指定ECS的主机名。

返回:成功

image_id

字符串

指定系统镜像的 ID。

返回:成功

image_name

字符串

指定ECS的镜像名称。

返回:成功

name

字符串

指定ECS名称。值要求“包含1到64个字符,包括字母、数字、下划线(_)、连字符(-)、句点(.)。”。

返回:成功

nics

列表 / 元素=字符串

指定ECS的NIC信息。NIC的网络必须属于vpc_id指定的VPC。最多可以将12个NIC附加到一个ECS。

返回:成功

ip_address

字符串

指定 NIC 的 IP 地址。该值为 IPv4 地址。其值必须是子网网络段中未使用的 IP 地址。

返回:成功

port_id

字符串

指定与IP地址对应的端口ID。

返回:成功

subnet_id

字符串

指定子网的 ID。

返回:成功

power_state

整数

指定ECS的电源状态。

返回:成功

root_volume

字典

指定 ECS 系统磁盘的配置。

返回:成功

device

字符串

指定磁盘设备名称。

返回:成功

size

整数

指定系统磁盘大小(以 GB 为单位)。取值范围为 1 到 1024。系统磁盘大小必须大于或等于镜像支持的最小系统磁盘大小(镜像的 min_disk 属性)。如果未指定此参数或将其设置为 0,则默认系统磁盘大小为镜像中系统磁盘的最小值(镜像的 min_disk 属性)。

返回:成功

snapshot_id

字符串

指定快照 ID 或完整 ECS 镜像中包含的原始数据磁盘的 ID。

返回:成功

volume_id

字符串

指定磁盘 ID。

返回:成功

volume_type

字符串

指定 ECS 系统磁盘类型。

SATA 是普通 I/O 磁盘类型。

SAS 是高 I/O 磁盘类型。

SSD 是超高 I/O 磁盘类型。

co-p1 是高 I/O(性能优化型 I)磁盘类型。

uh-l1 是超高 I/O(延迟优化型)磁盘类型。

注意:对于 HANA、HL1 和 HL2 ECS,请使用 co-p1 和 uh-l1 磁盘。对于其他 ECS,请不要使用 co-p1 或 uh-l1 磁盘。

返回:成功

security_groups

列表 / 元素=字符串

指定ECS的安全组。如果此参数留空,则默认情况下会将默认安全组绑定到ECS。

返回:成功

server_alias

字符串

指定ECS别名。

返回:成功

server_metadata

字典

指定要创建的ECS的元数据。

返回:成功

server_tags

字典

指定ECS的标签。创建ECS时,一个ECS最多支持10个标签。

返回:成功

ssh_key_name

字符串

指定用于登录ECS的SSH密钥的名称。

返回:成功

status

字符串

指定ECS状态。选项包括ACTIVE、REBOOT、HARD_REBOOT、REBUILD、MIGRATING、BUILD、SHUTOFF、RESIZE、VERIFY_RESIZE、ERROR和DELETED。

返回:成功

user_data

字符串

指定在ECS创建过程中注入的用户数据。可以注入文本、文本文件和gzip文件。要注入的内容必须使用base64编码。要注入的内容(编码前)的最大大小为32 KB。对于Linux ECS,当使用adminPass时,此参数无效。

返回:成功

vpc_id

字符串

指定ECS所属的VPC的ID。

返回:成功

作者

  • 华为公司 (@huaweicloud)