创建弹性云服务器-九游平台
场景描述
本章节指导用户通过api创建云服务器。api的调用方法请参见。
创建云服务器时,支持通过卷和镜像两种方式进行创建。本节以指定镜像的方式为例,介绍如何创建云服务器。
约束限制
该接口创建出来的是按需付费的实例。
涉及接口
创建云服务器时,需要进行规格查询、可用区查询、云硬盘创建等操作,涉及的接口如下:
- 查询可用区列表:确定待创建云服务器所在的可用区。
- 查询云服务器规格详情列表:确定待创建云服务器的规格。
- 查询镜像列表详情:确定待创建云服务器使用的镜像。
- 查询网络列表:确定云服务器的网络信息。
- 创建和导入ssh密钥:设置密钥对登录方式。
- 创建云服务器:创建密钥对登录鉴权的云服务器。
- 查询云服务器详情:确认云服务器创建成功。
操作步骤
- 确定待创建云服务器所在的可用区。
- 查询可用区。
- 接口相关信息
uri格式:get /v2.1/{project_id}/os-availability-zone
详情请参见。
- 请求示例
get https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-availability-zone
{endpoint}信息请从获取。
- 响应示例
{ "availabilityzoneinfo": [ { "hosts": null, "zonestate": { "available": true }, "zonename":"zone_01" }, { "hosts": null, "zonestate": { "available": true }, "zonename": "zone_01" } ] }
- 接口相关信息
- 根据实际需要选择可用区,并记录可用区的zonename。
- 查询可用区。
- 确定待创建云服务器的规格。
- 查询云服务器规格信息。
- 接口相关信息
uri格式:get /v2.1/{project_id}/flavors/detail{?mindisk,minram,is_public,sort_key,sort_dir}
其中,“?”后的字段为查询规格时可选的查询检索参数,详情请参见。
- 请求示例
get https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/flavors/detail
{endpoint}信息请从获取。
- 响应示例
{ "flavors": [ { "name": "c1.2xlarge", "links": [ { "href": "https://xxx/v2.1/74610f3a5ad941998e91f076297ecf27/flavors/c1.2xlarge", "rel": "self" }, { "href": "https://xxx/74610f3a5ad941998e91f076297ecf27/flavors/c1.2xlarge", "rel": "bookmark" } ], "ram": 8192, "os-flv-disabled:disabled": false, "vcpus": 8, "swap": "", "os-flavor-access:is_public": true, "rxtx_factor": 1, "os-flv-ext-data:ephemeral": 0, "disk": 0, "id": "c1.2xlarge" } ] }
- 接口相关信息
- 根据实际需要选择规格,并记录规格的id。
- 查询云服务器规格信息。
- 确定待创建云服务器使用的镜像。
- 查询镜像。
- 接口相关信息
uri格式:get /v2.1/{project_id}/images/detail
详情请参见。
- 请求示例
get https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/images/detail
{endpoint}信息请从获取。
- 响应示例
{ "images": [ { "os-ext-img-size:size": 0, "metadata": { "__os_type": "linux", "hw_vif_multiqueue_enabled": "true", "__imagetype": "gold", "__quick_start": "true", "virtual_env_type": "fusioncompute", "__support_xen": "true", "__support_kvm": "true", "__image_source_type": "uds", "__platform": "euleros", "__os_version": "euleros 2.2 64bit", "__os_bit": "64", "__isregistered": "false" }, "created": "2018-05-14t06:13:50z", "minram": 0, "name": "dbs-mysql-image_2.1.3.3", "progress": 100, "links": [ { "rel": "self", "href": "https://none/v2.1/74610f3a5ad941998e91f076297ecf27/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4" }, { "rel": "bookmark", "href": "https://none/74610f3a5ad941998e91f076297ecf27/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4" }, { "rel": "alternate", "href": "https://none/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4", "type": "application/vnd.openstack.image" } ], "id": "11e8f727-d439-4ed1-b3b8-33f46c0379c4", "updated": "2018-05-14t06:13:52z", "mindisk": 40, "status": "active" } ] }
- 接口相关信息
- 根据需要选择镜像,并记录镜像id。
- 查询镜像。
- 确定云服务器的网络信息。
- 查询网络。
- 接口相关信息
uri格式:get /v2.1/{project_id}/os-networks
详情请参见。
- 请求示例
get https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-networks
{endpoint}信息请从获取。
- 响应示例
{ "networks": [ { "id": "07a9557d-4256-48ae-847c-415a9c8f7ff6", "label": "b_tt3_td1b", "broadcast": null, "cidr": null, "dns1": null, "dns2": null, "gateway": null, "netmask": null, "cidr_v6": null, "gateway_v6": null, "netmask_v6": null } ] }
- 接口相关信息
- 根据需要选择网络,并记录网络id。
- 查询网络。
- 设置密钥对登录方式。
如需设置为密码登录方式,请直接跳转至7。
- 创建密钥对。
- 接口相关信息
uri格式:post /v2.1/{project_id}/os-keypairs
详情请参见。
- 请求示例
post https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-keypairs
{endpoint}信息请从获取。
body:
{ "keypair": { "type": "ssh", "name": "demo1", "user_id": "fake" } }
- 响应示例
{ "keypair": { "public_key": "ssh-rsa aaaab3nzac1yc2eaaaadaqabaaabaqcrr5gcwlh5ih7jovziuuqxs5qzwwpmyhedxkdksq9w5pumov05sio3wcswnaq5xmdol31mnihtwlwq9dji7x6jjbb2sht******************************************************************************************************************************************************************************************************************************************************************************************************* generated-by-nova\n", "private_key": "-----begin rsa private key-----\nmiieogibaakcaqeaq0ernmjyeyoeytr8yflkmuuas1ljzgb3g15aykkpvuabpjld\nouojt1grmj2kocthtpd9zjyh7cjckvxsyu1 oyqqdriuw/tnbuvrsjawxvoai77d\nqeoltdvimkyd tql1tv f76v5vtsiknweyhumwoxlit/fj4fqzg4t5gmtqqivmqd\npai0ivro wm3cwqyvndf/ecc3dyhyqhankrsbuywxareni/tu1pjnh2xuj69abwz\ntdc 8sxymommm1u4flitwzgyh0rukkw5jxzjr2oeqt0ig 0tf2glyk0el0/ojpg/\nczqzao1o h8diuzs/7pz72ydqo0r7fq moccn***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************\n-----end rsa private key-----\n", "user_id": "f79791beca3c48159ac2553fff22e166", "name": "demo1", "fingerprint": "57:a7:a2:ed:5f:aa:e7:**:**:**:**:**:**:**:**:**" } }
- 接口相关信息
- 导入密钥。
- 接口相关信息
uri格式:post /v2.1/{project_id}/os-keypairs
详情请参见。
- 请求示例
post https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-keypairs
{endpoint}信息请从获取。
body:
{ "keypair": { "public_key": "ssh-rsa aaaab3nzac1yc2eaaaadaqabaaabaqdy8wmtdbyijgi62o6eshoolskx3cz3ce6phisdblfk3y0bg7ehv7iv9c74pqsrihk0xuguuo1nxdqwbkwltpn4f9iy5ci********************************************************************************************************************************************************************************************************************************************************* generated-by-nova\n", "type": "ssh", "name": "demo2", "user_id": "fake" } }
- 响应示例
{ "keypair": { "public_key": "ssh-rsa aaaab3nzac1yc2eaaaadaqabaaabaqdy8wmtdbyijgi62o6eshoolskx3cz3ce6phisdblfk3y0bg7ehv7iv9c74pqsrihk0xuguuo1nxdqwbkwltpn4f9iy5ci********************************************************************************************************************************************************************************************************************************************************* generated-by-nova\n", "user_id": "f79791beca3c48159ac2553fff22e166", "name": "demo2", "fingerprint": "dd:44:45:49:d9:f6:4f:**:**:**:**:**:**:**:**:**" } }
- 接口相关信息
- 记录响应消息体中的name信息。如本例中为“demo2”。
- 创建密钥对。
- 创建密钥对登录鉴权的云服务器。
- 接口相关信息
uri格式:post /v2.1/{project_id}/servers
接口约束及请求参数说明详情,请参见。
本示例是指定image创建云服务器,因此:
- block_device_mapping_v2中,“source_type”需设置为“image”,“uuid”设置为选择的镜像id,“destination_type”设置为“volume”,“boot_index”设置为“0”。
- “volume_size”应大于等于镜像元数据中指定的最小值。
- 请求示例
post https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers
{endpoint}信息请从获取。
body:
{ "server": { "flavorref": "c1.large", "name": "zttestvm1", "block_device_mapping_v2": [{ "source_type": "image", "destination_type": "volume", "volume_type": "ssd", "volume_size": "40", "delete_on_termination": "true", "uuid": "11e8f727-d439-4ed1-b3b8-33f46c0379c4", "boot_index": "0" }], "networks": [{ "uuid": "fb68519f-a7c0-476e-98d4-2e4cf6de6def" }], "key_name": "demo2", "availability_zone": "az_test_01" } }
- 响应示例
{ "server": { "security_groups": [ { "name": "default" } ], "os-dcf:diskconfig": "manual", "links": [ { "rel": "self", "href": "https://none/v2.1/74610f3a5ad941998e91f076297ecf27/servers/6d311127-bce1-48db-bf0f-cac9f8f7f077" }, { "rel": "bookmark", "href": "https://none/74610f3a5ad941998e91f076297ecf27/servers/6d311127-bce1-48db-bf0f-cac9f8f7f077" } ], "id": "6d311127-bce1-48db-bf0f-cac9f8f7f077", "adminpass": "**********" } }
- 接口相关信息
- 设置密码登录方式。
- 使用非cloud-init镜像创建云服务器时,windows和linux系统都使用“adminpass”参数实现密码注入。
- 使用cloud-init镜像创建云服务器时:
- 对于linux系统,只能使用“user_data”进行密码注入,“user_data”字符串长度小于65535,且必须是base64加密的;
- 对于windows系统,只能通过元数据“admin_pass”进行密码注入。
- 创建密码方式登录鉴权的弹性云服务器。
本示例是指定image创建弹性云服务器,因此:
- block_device_mapping_v2中,“source_type”需设置为“image”,“uuid”设置为选择的镜像id,“destination_type”设置为“volume”,“boot_index”设置为“0”。
- “volume_size”应大于等于镜像元数据中指定的最小值。
- 创建非cloud-init镜像、密码方式登录鉴权的弹性云服务器。
- 接口相关信息
uri格式:post /v2.1/{project_id}/servers
接口约束及请求参数说明详情,请参见。
- 请求示例
post https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers
{endpoint}信息请从获取。
body:
{ "server": { "flavorref": "c1.large", "name": "zttestvm1", "adminpass": "$admin_pass", //建议在配置文件或者环境变量中密文存放,使用时解密,确保安全 "block_device_mapping_v2": [{ "source_type": "image", "destination_type": "volume", "volume_type": "ssd", "volume_size": "40", "delete_on_termination": "true", "uuid": "11e8f727-d439-4ed1-b3b8-33f46c0379c4", "boot_index": "0" }], "networks": [{ "uuid": "fb68519f-a7c0-476e-98d4-2e4cf6de6def" }], "availability_zone": "az_test_01" } }
- 响应示例
{ "server": { "security_groups": [ { "name": "default" } ], "os-dcf:diskconfig": "manual", "links": [ { "rel": "self", "href": "https://none/v2.1/74610f3a5ad941998e91f076297ecf27/servers/73991cff-37c6-491a-9a8a-377397729fce" }, { "rel": "bookmark", "href": "https://none/74610f3a5ad941998e91f076297ecf27/servers/73991cff-37c6-491a-9a8a-377397729fce" } ], "id": "73991cff-37c6-491a-9a8a-377397729fce", "adminpass": "***********" } }
- 接口相关信息
- 创建cloud-init镜像(以linux为例)、密码方式登录鉴权的弹性云服务器。
- 接口相关信息
uri格式:post /v2.1/{project_id}/servers
接口约束及请求参数说明详情,请参见。
- 请求示例
post https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers
{endpoint}信息请从获取。
body:
{ "server": { "flavorref": "c1.large", "name": "zttestvm2", "user_data":"iyevymlul2jhc2gkzwnobyancm9vddokniruaerlcuikajbkelvmbkfrbwo4bwlfrefzt0vonkvpdgg1rmdqwnqybuvwzvrocc5ovdjxelzvdzfunzhnl3dndde0dvpsq1v3lzhhs3vgdeviq0lpqs5vn1bzqzenihwgy2hwyxnzd2qglwu7", "block_device_mapping_v2": [{ "source_type": "image", "destination_type": "volume", "volume_type": "ssd", "volume_size": "40", "delete_on_termination": "true", "uuid": "11e8f727-d439-4ed1-b3b8-33f46c0379c4", "boot_index": "0" }], "networks": [{ "uuid": "fb68519f-a7c0-476e-98d4-2e4cf6de6def" }], "availability_zone": "az_test_01" } }
- 响应示例
{ "server": { "security_groups": [ { "name": "default" } ], "os-dcf:diskconfig": "manual", "links": [ { "rel": "self", "href": "https://none/v2.1/74610f3a5ad941998e91f076297ecf27/servers/7c11f362-cc96-4306-85b6-b432a639ca5e" }, { "rel": "bookmark", "href": "https://none/74610f3a5ad941998e91f076297ecf27/servers/7c11f362-cc96-4306-85b6-b432a639ca5e" } ], "id": "7c11f362-cc96-4306-85b6-b432a639ca5e", "admin_pass": "j3xmsivhcuq5" } }
- 接口相关信息
- 确认云服务器创建成功。
- 接口相关信息
uri格式:get /v2.1/{project_id}/servers/{server_id}
详情请参见。
- 请求示例
get https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers/0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6
其中:
0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6为创建的云服务器uuid。
{endpoint}信息请从获取。
- 响应示例
{ "server": { "tenant_id": "74610f3a5ad941998e91f076297ecf27", "addresses": { "2a6f4aa6-d93e-45f5-a8cb-b030dbf8cd68": [ { "os-ext-ips-mac:mac_addr": "fa:16:3e:88:01:1b", "os-ext-ips:type": "fixed", "addr": "192.168.2.192", "version": 4 } ] }, "metadata": {}, "os-ext-sts:task_state": null, "os-dcf:diskconfig": "manual", "os-ext-az:availability_zone": "az_test_01", "links": [ { "rel": "self", "href": "https://none/v2.1/74610f3a5ad941998e91f076297ecf27/servers/0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6" }, { "rel": "bookmark", "href": "https://none/74610f3a5ad941998e91f076297ecf27/servers/0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6" } ], "os-ext-sts:power_state": 1, "id": "0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6", "os-extended-volumes:volumes_attached": [ { "id": "b551445a-e749-4d53-932a-638a455cb6c3" } ], "os-ext-srv-attr:host": "pod1_test_01", "image": { "links": [ { "rel": "bookmark", "href": "https://none/74610f3a5ad941998e91f076297ecf27/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4" } ], "id": "11e8f727-d439-4ed1-b3b8-33f46c0379c4" }, "os-srv-usg:terminated_at": null, "accessipv4": "", "accessipv6": "", "created": "2018-05-25t01:47:11z", "hostid": "b2792bef989888d2df1f51bff81de5ac58a4117f4e9ec3059c1a0410", "os-ext-srv-attr:hypervisor_hostname": "nova001@36", "key_name": null, "flavor": { "links": [ { "rel": "bookmark", "href": "https://none/74610f3a5ad941998e91f076297ecf27/flavors/c1.large" } ], "id": "c1.large" }, "security_groups": [ { "name": "default" } ], "config_drive": "", "os-ext-sts:vm_state": "active", "os-ext-srv-attr:instance_name": "instance-001883cd", "user_id": "f79791beca3c48159ac2553fff22e166", "name": "zttestvm1", "progress": 0, "os-srv-usg:launched_at": "2018-05-25t01:47:55.755922", "updated": "2018-05-25t01:47:55z", "status": "active" } }
- 接口相关信息
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨