ECS.CloudServer
模型说明
ECS.CloudServer用于部署IaaS层的弹性云服务器,由CPU、内存、镜像、云硬盘组成的一种可随时获取、弹性可扩展的计算云服务器。
模型属性
属性 |
是否必选 |
描述 |
---|---|---|
vpcId |
是 |
云服务器所属VPC的ID 参数类型:Cloud.VPC.VPC.Id 取值说明:支持使用已有或新建虚拟私有云的ID。若使用新建的,需在模板中定义VPC对象并建立依赖关系。建议拖拽元素到VPC内自动生成。 取值约束:满足UUID规则,最大64位 使用建议:1. 将该字段通过get_input函数传入,通过在AOS界面创建堆栈填写输入参数时可自动选择2. 通过get_reference获取由本堆栈创建的VPC.VPC元素 3. 在VPC服务界面获取已经创建好的VPC的ID。 |
mountedVolumes |
否 |
共享磁盘批量挂载到弹性云服务器,但是非共享盘只能挂载一个。 参数类型:ECS.MountedVolumes数组 取值说明:ECS.MountedVolumes类型数组 取值约束:满足ECS.MountedVolumes类型定义 |
imageId |
是 |
云服务器使用的镜像ID 参数类型:Cloud.ECS.Image.Id 取值说明:待创建云服务器的系统镜像,需要指定已创建镜像的ID,ID格式为UUID。 取值约束:满足UUID规则,最大64位 使用建议:1. 建议通过get_input方式定义以便在使用模板时可以选择2. 查阅ECS服务资料获取 |
serverTags |
否 |
弹性云服务器的标签 参数类型:ECS.ServerTags数组 取值约束:最多可以添加10个标签,标签的key值只能包含大写字母(A~Z)、小写字母(a~z)、数字(0-9)、下划线(_)、中划线(-)。标签的value值只能包含大写字母(A~Z)、小写字母(a~z)、数字(0-9)、下划线(_)、中划线(-)、小数点(.)。 |
instances |
是 |
创建云服务器数量 参数类型:integer 取值说明:实例数当前支持1-500 默认值:1 取值约束:范围在[1, 500]之间 使用建议:根据规格按需选择 |
securityGroups |
否 |
云服务器所使用的安全组id的数组 参数类型:ECS.SecurityGroup数组 取值说明:ECS.SecurityGroup类型数组 取值约束:满足ECS.SecurityGroup类型定义 |
flavor |
是 |
云服务器的规格 参数类型:Cloud.ECS.Flavor.Name 取值说明:待创建云服务器的系统规格的ID 取值约束:满足flavor格式定义 使用建议:建议通过get_input方式定义以便在使用模板时可以选择或者查阅ECS服务资料获取 |
serverGroupId |
否 |
主机所属的云服务器组ID 参数类型:Cloud.ECS.ServerGroup.Id 取值说明:当前租户下已存在的云服务器组ID 取值约束:当前租户下已存在的云服务器组ID 使用建议:添加到已有组的,直接使用云服务器组ID;如果是在同一个编排文件中新建云服务器组再添加的,使用get_reference来自动获取 |
nics |
是 |
云服务器对应的网卡信息 参数类型:ECS.NICS数组 取值说明:ECS.NICS类型数组 取值约束:满足ECS.NICS类型定义,数组长度最小为1,最大为12 |
rootVolume |
是 |
云服务器对应系统盘相关配置。 参数类型:ECS.RootVolume 取值说明:ECS.RootVolume类型 默认值:{u'volumeType': u'unset', u'size': 40} 取值约束:满足ECS.RootVolume类型定义 |
userData |
否 |
创建云服务器过程中待注入用户数据。支持注入文本、文本文件或gzip文件。 参数类型:string 取值说明:用户自定义 取值约束:注入内容,需要进行base64格式编码。注入内容(编码之前的内容)最大长度32KB。当key_name没有指定时,user_data注入的数据默认为云服务器root账号的登录密码。创建密码方式鉴权的Linux弹性云服务器时为必填项,为root用户注入自定义初始化密码。 使用建议:根据规格按需选择,更多关于待注入用户数据的信息,请参见《弹性云服务器 用户指南》的“用户数据注入”章节。 |
availabilityZone |
是 |
云服务器对应可用区信息 参数类型:Cloud.ECS.AvailabilityZone.Name 取值说明:待创建云服务器所在的可用区,需要指定可用区(AZ)的名称。 取值约束:根据所属区域选择。 使用建议:将该字段通过get_input函数传入,通过在AOS界面创建堆栈填写输入参数时可自动选择。 |
dataVolumes |
否 |
云服务器对应数据盘相关配置。 参数类型:ECS.DataVolume数组 取值说明:ECS.DataVolume类型数组 取值约束:满足ECS.DataVolume类型定义 |
name |
是 |
云服务器名称 参数类型:string 取值说明:用户自定义,如myvm 取值约束:长度限制:1-64,租户唯一,正则规范要求:{"regex":"^[a-zA-Z][0-9a-zA-Z-_]*$","min_length":1,"max_length":64} 使用建议:自定义 |
publicIP |
否 |
配置云服务器的弹性IP信息。 参数类型:ECS.PublicIP 取值说明:ECS.PublicIP类型 默认值:{} 取值约束:满足ECS.PublicIP类型定义 |
adminPwd |
否 |
指定云服务器管理员账户初始登录密码。 参数类型:password 取值说明:Linux管理员账户为root,Windows管理员账户为Administrator。密钥登录与密码登录只能选择其中一种。 取值约束:1. 长度为8-26位。密码至少必须包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{}]:,./?)中的三种。2. 密码不能包含用户名或用户名的逆序。3. Windows系统密码不能包含用户名或用户名的逆序,不能包含用户名中超过两个连续字符的部分。 使用建议:建议通过get_input方式输入 |
sshKeyName |
否 |
登录使用的ssh密钥对 参数类型:Cloud.ECS.KeyPair.Name 取值说明:需要在ECS服务界面提前创建,密钥登录与密码登录只能选择其中一种。 取值约束:长度限制:1-64,租户唯一,正则规范要求:{"regex":"^[a-zA-Z][0-9a-zA-Z-_]*$","min_length":1,"max_length":64} 使用建议:1. 建议通过get_input方式定义以便在使用模板时可以选择 2. 在ECS界面查询后输入 |
关联关系
关系说明 |
关联节点 |
---|---|
被包含关系 |
|
关联关系 |
|
关联关系 |
|
关联关系 |
|
关联关系 |
输出
属性 |
参数类型 |
描述 |
---|---|---|
publicIps |
string |
云服务器实例的弹性IP数组 |
privateIps |
string |
云服务器实例的私网IP数组 |
floatingIpIds |
string |
云服务器实例的弹性IP的ID数组 |
refID |
数组 |
创建的所有弹性云服务器实例ID列表 |
refName |
数组 |
创建的所有弹性云服务器实例名称列表 |
blueprint样例
以编排CloudServer资源的blueprint为例:
- 在现有的VPC、Subnet下创建subnet
tosca_definitions_version: cloud_tosca_version_1_0 inputs: ecs-name: default: "my-cloudserver" ecs-image: default: "327946b5-e954-42c3-949a-3312688c9269" ecs-flavor: default: "c2.large" vpc-id: default: "ba6e4347-99d2-4649-b114-85c28d3d71b0" az: default: "az1.dc1" subnet-vpcid: default: "3be61f68-9bfc-41bf-8f5e-66c57122f270" ecs-volumetype: default: "SATA" ecs-sshKeyName: default: "KeyPair-magento" node_templates: my-ecs: type: Cloud.ECS.CloudServer properties: name: {get_input: ecs-name} instances: 2 imageId: {get_input: ecs-image} flavor: {get_input: ecs-flavor} vpcId: {get_input: vpc-id} availabilityZone: {get_input: az} nics: - subnetId: {get_input: subnet-vpcid} rootVolume: volumeType: {get_input: ecs-volumetype} dataVolumes: - volumeType: SATA size: 100 sshKeyName: {get_input: ecs-sshKeyName}
- 与VPC、Subnet联动,在新创建的VPC、Subnet下自动创建CloudServer
如果您没有创建过VPC、Subnet,或不需要使用已有的VPC、Subnet,那么可以通过一个blueprint文件,同时创建VPC、Subnet和CloudServer,创建CloudServer时可以自动关联新创建的VPC和Subnet。如下示例所描述:
- 在Subnet中加入依赖关系requirements,这样在blueprint执行时,会先创建Subnet所依赖的对象。
- 在Subnet中的vpcId字段,取值,使用了get_attribute函数,来获取所创建的VPC(my-vpc)的响应属性refID。
- 在CloudServer中的vpcId、nics的subnetId字段,取值,使用了get_attribute函数,来获取所创建的subnet(my-subnet)的响应属性refID。
tosca_definitions_version: cloud_tosca_version_1_0 inputs: ecs-name: default: "my-cloudserver" ecs-image: default: "327946b5-e954-42c3-949a-3312688c9269" ecs-flavor: default: "c2.large" ecs-volumetype: default: "SATA" az: default: "az1.dc1" subnet-name: default: "my-ecs-subnet2" subnet-cidr: default: "192.168.1.0/24" subnet-gateway: default: "192.168.1.1" vpc-name: default: "my-ecs-vpc2" vpc-cidr: default: "192.168.0.0/16" node_templates: my-ecs: type: Cloud.ECS.CloudServer properties: name: {get_input: ecs-name} instances: 1 imageId: {get_input: ecs-image} flavor: {get_input: ecs-flavor} vpcId: {get_attribute: [my-vpc, refID]} availabilityZone: {get_input: az} nics: - subnetId: {get_attribute: [my-subnet, refID]} rootVolume: volumeType: {get_input: ecs-volumetype} dataVolumes: - volumeType: SATA size: 100 requirements: - nics.subnetId: node: my-subnet my-subnet: type: Cloud.VPC.Subnet properties: name: {get_input: subnet-name} cidr: {get_input: subnet-cidr} gateway: {get_input: subnet-gateway} dnsList: [114.114.114.115,114.114.114.114] vpcId: {get_attribute: [my-vpc, refID]} availabilityZone: {get_input: az} requirements: - vpcId: node: my-vpc my-vpc: type: Cloud.VPC.VPC properties: name: {get_input: vpc-name} cidr: {get_input: vpc-cidr}