操作场景一
通过控制台开通单台云主机。
操作步骤
本文以南昌5资源池为例,创建单台Linux/Windows云主机。
计算控制台点击“弹性云主机”,点击右上角“创建云主机”。
“基础配置” 页
- 计费模式选择按量付费;
- 地域选择江西-南昌5;
- 可用区选择可用区1;
- 企业项目选择default;
- 虚拟私有云(VPC)选择默认default-vpc;
- 实例名称和主机名称按照要求填写即可;
- 选择所需开通规格,本次以s7.xlarge.2为例;
- 选择所需镜像类型。
“网络配置” 页
- 网卡会关联上述选择的虚拟私有云(VPC)下的子网,选择相应的子网即可;
- 安全组可以选择default安全组;
- 弹性IP选择“不使用”。
“高级配置” 页
- 登陆方式默认为密码,创建密码为稍后创建;
- 用户数据选择“暂不配置”;
- 左下角购买量选择1台。
“确认配置” 页
确认上述选择和填写的配置项符合预期,勾选“已阅读并同意相关协议”,点击右下角的“立即购买”完成订购。
对于单台Linux/Windows云主机,通常情况下可在一分钟内完成开通。本次单台Linux云主机开通耗时17秒,单台Windows云主机开通耗时16秒。
操作场景二
通过控制台开通多台云主机。
操作步骤
本文以南昌5资源池为例,批量创建20台Linux云主机。
控制台点击“弹性云主机”,点击右上角“创建云主机”。
“基础配置” 页
- 计费模式选择按量付费;
- 地域选择江西-南昌5;
- 可用区选择可用区1;
- 企业项目选择default;
- 虚拟私有云(VPC)选择默认自己创建的VPC;
- 实例名称和主机名称按照要求填写即可;
- 选择所需规格,本次以s7.xlarge.2为例;
- 选择所需镜像类型。
“网络配置” 页
- 网卡会关联上述选择的虚拟私有云(VPC)下的子网,选择相应的子网即可;
- 安全组可以选择default安全组;
- 弹性IP选择“不使用”。
“高级配置” 页
- 登陆方式默认为密码,创建密码为稍后创建;
- 用户数据选择“暂不配置”;
- 左下角购买量选择20台。
“确认配置” 页
确认上述选择和填写的配置项符合预期,勾选“已阅读并同意相关协议”,点击右下角的“立即购买”完成订购。
对于多台Linux云主机,通常情况下可实现分钟级开通。本次开通20台Linux云主机耗时22秒。
操作场景三
通过OpenAPI接口并发开通1000台云主机。
接口约束
- 目前不支持预付费账户创建按需付费类型云主机。
- 计费模式选择包年包月计费方式时,需要填写订购周期类型与订购时长。
- 自动分配弹性IP(extIP="1")时,需要填写弹性IP版本(ipVersion)与带宽大小(bandwidth);使用已有的弹性IP(extIP="2")时,需要填写弹性IP的版本(ipVersion),和对应弹性IP的ID(eipID或ipv6AddressID)。
- 挂载网卡时,子网与虚拟私有云存在对应关系,确保子网属于当前虚拟私有云。
- 云主机绑定多个标签时,标签键(参数labelKey)不可重复,单台云主机最多可绑定10个标签。
操作步骤
本文以南昌5资源池为例,创建1000台按需计费的云主机,其中每批创建50台,并发创建20批次。
-
计算控制台点击“镜像服务”,在公共镜像Tab选择CentOS Linux 7.6 64位镜像,获取镜像ID。
-
选择需要开通的云主机规格,本次使用s7.large.2,根据OpenAPI的查询云主机规格资源接口获取该规格对应的flavorID。
-
网络控制台点击“虚拟私有云”,创建虚拟私有云(VPC),同时在该虚拟私有云(VPC)下创建subnet,保证该subnet可使用的IP数量超过1000个。
-
在官网帮助中心查找OpenAPI批量创建云主机接口。
-
批量开通函数封装。
@atomic.action_timer("openapi.batch_create_instance") def _batch_create_instance(self, region, az, flavor, image, vpc, subnet, ext_ip, disk_type, disk_size,ondemand, order_count, **kwargs): """Returns user servers list.""" body = self.client.servers.batch_create(region, az, flavor, image, vpc, subnet, ext_ip, disk_type, disk_size,ondemand,order_count, **kwargs) order = body["returnObj"]["masterOrderID"] res = self._query_uuid(order,interval=2, timeout=600) return res def batch_create(self, region, az, flavor, image, vpc, subnet, ext_ip, disk_type, disk_size, ondemand, order_count, **kwargs): name = "s-rally-" + self._random_digits(5) params = { "clientToken": str(uuid.uuid4()), "regionID": region, "azName": az, "instanceName": name, "displayName": name, "flavorID": flavor, "imageType": 1, "imageID": image, "bootDiskType": disk_type, "bootDiskSize": disk_size, "onDemand": ondemand, "orderCount": order_count, "vpcID": vpc, "extIP": ext_ip, "networkCardList": [ { "subnetID": subnet, "isMaster": True } ], } params.update(kwargs) return self._post("/v4/ecs/batch-create-instances", params=params)
-
编写yaml执行脚本。
-
scenario选择上述编写的batch_create_instance方法;
-
region、az对应南昌5资源池ID和可用区;
-
flavor、image为上述选择的规格和镜像;
-
vpc、subnet是上述创建的虚拟私有云和子网;
-
ext_ip默认为0,不创建弹性IP;
-
disk_type选择SATA普通IO,disk_size选择40;
-
ondemand选择true,选择创建按需云主机;
-
projectID为相关的企业项目;
-
order_count选择50,表示单批次批量创建50台云主机;
-
runner中times设置20,代表共批量创建20批次;concurrency设置20,代表并发20。
yaml可执行脚本如图所示。
-
部署相关脚本到对应的运行机器,执行yaml脚本,开始创建云主机。
rally task start ***.yaml
-
当20个订单创建完成后,可在控制台查看“运行中”的云主机数量。对于千台云主机,通常情况下可在十分钟内完成开通。本次批量开通千台云主机耗时138秒,开通成功率100%。