更新时间:2023-12-01 gmt 08:00

创建弹性云服务器-凯发k8国际娱乐官网入口

场景描述

本章节指导用户通过api创建云服务器。api的调用方法请参见。

创建云服务器时,支持通过卷和镜像两种方式进行创建。本节以指定镜像的方式为例,介绍如何创建云服务器

约束限制

该接口创建出来的是按需付费的实例。

涉及接口

创建云服务器时,需要进行规格查询、可用区查询、云硬盘创建等操作,涉及的接口如下:

操作步骤

  1. 确定待创建云服务器所在的可用区。
    1. 查询可用区。
      • 接口相关信息

        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" 
            }
          ]
        }
    2. 根据实际需要选择可用区,并记录可用区的zonename。
  2. 确定待创建云服务器的规格。
    1. 查询云服务器规格信息。
      • 接口相关信息

        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"
            }
        ]
        }
    2. 根据实际需要选择规格,并记录规格的id。
  3. 确定待创建云服务器使用的镜像。
    1. 查询镜像。
      • 接口相关信息

        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"
            }
          ]
        }
    2. 根据需要选择镜像,并记录镜像id。
  4. 确定云服务器的网络信息。
    1. 查询网络。
      • 接口相关信息

        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
            }
          ]
        }
    2. 根据需要选择网络,并记录网络id。
  5. 设置密钥对登录方式。

    如需设置为密码登录方式,请直接跳转至7

    1. 创建密钥对。
      • 接口相关信息

        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 aaaab3nzac1yc2eaaaadaqabaaabaqcrr5gcwlh5ih7jovziuuqxs5qzwwpmyhedxkdksq9w5pumov05sio3wcswnaq5xmdol31mnihtwlwq9dji7x6jjbb2shtd 00g5wuwkbbfu4clvt1b44u0nuiatj35navw2/4xvpxm9owiq3b5ge6zy7esi38unh pkbhpkyxnbck8yoolojqhws75abdxzbi811/8rwlcnifioca2rgxtrjbdpescj 1tu ocfzdqnr0afbo11z7yxfiygwwzvtguujnbmbkhstqqrbklfmlhy4rbpqgb7rn/yaxktqsxt84k d9xldno7wj4fwojtoz/s/pvbioqjrht9d6y4ikd 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 moccnqidaqabaoibaa6/c9dgmk2mae4z\nyq5krofdvc1tnhej szx cwyzejusvsuhcvqcxfbaz8fy92hhvpkcx66jinxz 4/\ncmwaq5yyhcriow0y91hvss0bywoknx3q6kxbfodmyycwfkgd5imtadb1lx0a27y7\njls4dl5gyigmxun2ng24wweaje8znui0lrtr5izkp s5iai/rb5ag/ml7ezice8c\nmgp qaa nzwhawnhfwvid230xen/zcol1d77hxearnqjuxor25gwjd6ebg2y9pdw\nvu6cbbzgdgucfqylmeoaamakcswosdpvdbxwqnt2a537n6wq2bgyikushr9thtxp\n/5ubqlucgyea4zyubg2vtlhnvce26p8o2j1xcjs9k0ozkah9jfl3hqfn0saqllz7\n/fm1ja4kzhjs3d0uqp3amdxy3hkiqcn4be7lqeaae2afqkozpt9mdnv4vwke9spb\nviw1qjl3fxzilc/ywtrnslpwrjqjjgha uqt8roia1k/zxmres7bxlccgyeawpsu\nk3j5qoaiziyvmyf5iczwwam9ljpf9gw23leftdizhhfftjplvrsyxrgu0uz84gmi\ntd5zmcif/1kufhqmeiqzz6nipeyereahjpq/soh/gk5rwr3qwyprwau5x kk/sri\nkpkqw7aptr0smqbcuq zywgylgpmdd1zudlfb0scgybkuz11iydtxb3g/obsd2wo\nm9vaiycmzrpfznwgrh/gor0mhtlukp0wyjjbsd34oeqph/2r2ivddroysxoqa8jg\n4iqdzylvj7makjqxrieqp89 y9or9tmfo1xb46x2g8en8/xhua9ygnzspftwv72m\nhrqv0hv82amwsa0vhnruswkbgdskhxvrtmbnknhkykmxch5iywibfsyza1zjmlgf\nknsqfdzevpwf6e55qkan2uutlwzg/3ljpxahr1hvmujjqn9jsbiukbtw6gpcrvbr\nf/jli1iu99cozdluvkeybqn8z/asnp24dr9fm8kxzz1impatbmhfypp6bclhclbt\nxtg1aogafcrkvbv1soy7fecutmpueccw0yu4gwj3sr2rbii63c500rvyqlupuarr\naanbashtvr4myoktgsxeuhaqhlxfdwsdl7w3gzaqtfbedp1xaauyt/nkoahqjem4\norfddetexlqg1kmuj 8adnhfyp3jtdft6rmppzebuficaumavb0=\n-----end rsa private key-----\n",
            "user_id": "f79791beca3c48159ac2553fff22e166",
            "name": "demo1",
            "fingerprint": "57:a7:a2:ed:5f:aa:e7:54:62:2e:bb:e7:92:22:cb:40"
          }
        }
    2. 导入密钥。
      • 接口相关信息

        uri格式:post /v2.1/{project_id}/os-keypairs

        详情请参见。

      • 请求示例

        post https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-keypairs

        {endpoint}信息请从获取。

        body:

        {
            "keypair": {
                "public_key": "ssh-rsa aaaab3nzac1yc2eaaaadaqabaaabaqdy8wmtdbyijgi62o6eshoolskx3cz3ce6phisdblfk3y0bg7ehv7iv9c74pqsrihk0xuguuo1nxdqwbkwltpn4f9iy5ciyohlumipbln6ldtfrppdheh3lxl8mm61gyfpkzekkwkepsfj27rgh6zcyjgbpka2a0htp737ulitahl4facwdis vj6mbcfkwimhumcztzgskaz4pfog4b5hjhr52c6a4xliqft9heh9gnisig utogtkubcjkun7m6arajpul6ehhv9yi4433sdmuibf/njvrevpwwahlakgt9i8q1t/cfefiwzxpdgbkk5o8nc7k qnbbdkihlahont generated-by-nova\n",
                "type": "ssh",
                "name": "demo2",
                "user_id": "fake"
            }
        }
      • 响应示例
        {
          "keypair": {
            "public_key": "ssh-rsa aaaab3nzac1yc2eaaaadaqabaaabaqdy8wmtdbyijgi62o6eshoolskx3cz3ce6phisdblfk3y0bg7ehv7iv9c74pqsrihk0xuguuo1nxdqwbkwltpn4f9iy5ciyohlumipbln6ldtfrppdheh3lxl8mm61gyfpkzekkwkepsfj27rgh6zcyjgbpka2a0htp737ulitahl4facwdis vj6mbcfkwimhumcztzgskaz4pfog4b5hjhr52c6a4xliqft9heh9gnisig utogtkubcjkun7m6arajpul6ehhv9yi4433sdmuibf/njvrevpwwahlakgt9i8q1t/cfefiwzxpdgbkk5o8nc7k qnbbdkihlahont generated-by-nova\n",
            "user_id": "f79791beca3c48159ac2553fff22e166",
            "name": "demo2",
            "fingerprint": "dd:44:45:49:d9:f6:4f:c0:24:2d:81:aa:c4:4b:83:c2"
          }
        }
    3. 记录响应消息体中的name信息。如本例中为“demo2”。
  6. 创建密钥对登录鉴权的云服务器
    • 接口相关信息

      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": "wcc4qovzpxpv"
        }
      }
  7. 设置密码登录方式。
    • 使用非cloud-init镜像创建云服务器时,windows和linux系统都使用“adminpass”参数实现密码注入。
    • 使用cloud-init镜像创建云服务器时:
      • 对于linux系统,只能使用“user_data”进行密码注入,“user_data”字符串长度小于65535,且必须是base64加密的;
      • 对于windows系统,只能通过元数据“admin_pass”进行密码注入。
  8. 创建密码方式登录鉴权的弹性云服务器。

    本示例是指定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":"novaglancei@123",
                "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": "novaglancei@123"
          }
        }
    • 创建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"
          }
        }
  9. 确认云服务器创建成功。
    • 接口相关信息

      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"
        }
      }
分享:
网站地图