更新时间:2022-02-22 GMT+08:00

创建裸金属服务器(OpenStack原生)

功能介绍

创建一台裸金属服务器。

约束

  • 本接口不支持批量创建裸金属服务器。
  • 使用支持Cloud-init或Cloudbase-init功能的镜像创建裸金属服务器时,只能使用key_name参数,adminPass参数无效。对于Linux裸金属服务器,如果需要注入密码,只能使用userdata方式进行注入;对于Windows裸金属服务器,如果需要注入密码,只能通过元数据admin_pass进行注入。
  • 使用不支持Cloud-init或Cloudbase-init功能的镜像创建裸金属服务器时,adminPass和key_name参数都无效,请使用镜像内置的密码或证书登录。
  • 不支持文件注入功能。
  • 不支持从系统卷创建裸金属服务器。
  • 网络的三个参数(port、uuid和fixed_ip)中,port优先级最高;指定fixed_ip时必须指明uuid。
  • 创建裸金属服务器后建议对其添加“__type_baremetal”标签,表示其是一台裸金属服务器,否则在Console上裸金属服务器列表中可能查询不到申请的该服务器。
  • 裸金属服务器最多只能指定2个VPC网络,第一个网络会作为裸金属服务器的主网卡网络。

URI

POST /v2.1/{project_id}/servers

参数说明请参见表1

表1 参数说明

参数

是否必选

描述

project_id

项目ID。

获取方式请参见获取项目ID

请求消息

  • 请求参数

    参数

    是否必选

    参数类型

    描述

    server

    Object

    裸金属服务器信息,详情请参见表2

    表2 server字段数据结构说明

    参数

    是否必选

    参数类型

    描述

    imageRef

    String

    裸金属服务器使用的镜像ID或者镜像资源的URL。

    • 镜像ID示例:3b8d6fef-af77-42ab-b8b7-5a7f0f0af8f2
    • 镜像URL示例:http://glance.openstack.example.com/images/3b8d6fef-af77-42ab-b8b7-5a7f0f0af8f2
    说明:
    • 对于部分规格的裸金属服务器,不能支持云服务平台提供的所有公共镜像。具体规格的镜像支持列表,请登录管理控制台,以“创建裸金属服务器”页面系统自动过滤的镜像信息为准,并在镜像服务页面查询镜像ID。
    • 如果创建失败,请尝试修改参数配置。

    flavorRef

    String

    裸金属服务器使用的规格ID或URL。

    name

    String

    裸金属服务器名称。长度大于0小于255字节。

    metadata

    Object

    裸金属服务器元数据,key和value的长度均不大于255字节。详情请参见表3

    user_data

    String

    创建裸金属服务器过程中注入用户数据。

    支持注入文本、文本文件或gzip文件。注入内容最大长度32KB。注入内容,需要进行base64格式编码。

    adminPass

    String

    裸金属服务器管理员帐户初始登录密码。其中,Linux注入无效,Windows管理员帐户为Administrator。

    密码复杂度要求:

    • 长度为8-26位。
    • 密码至少必须包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{}]:,./?)中的三种。
    • 密码不能包含用户名或用户名的逆序。
    • Windows系统密码不能包含用户名或用户名的逆序,不能包含用户名中超过两个连续字符的部分。

    注:不输入则会随机生成密码。

    特殊字符:!@$%^-_=+[{}]:,./?

    security_groups

    Array of objects

    指定裸金属服务器的安全组,默认为default,指定network参数时有效,不支持指定多个安全组。详情请参见表4

    networks

    Array of objects

    指定裸金属服务器的网卡信息。详情请参见表5

    最多只能指定4个网络信息,其中2个为vxlan类型的网络,2个为geneve类型的网络。参数中第一个网络信息必须为vxlan类型的网络,其会作为裸金属服务器的主网卡网络。若用户指定了多组网络参数,需保证各组参数都属于同一虚拟私有云。

    key_name

    String

    扩展属性,指定keypair的名称。

    availability_zone

    String

    裸金属服务器对应可用区信息,不支持指定具体的主机信息。

    表3 metadata字段数据结构说明

    参数

    是否必选

    参数类型

    描述

    用户自定义字段键值对

    String

    metadata键、值。

    键、值长度均不大于255字节。

    表4 security_groups字段数据结构说明

    参数

    是否必选

    参数类型

    描述

    name

    String

    裸金属服务器对应的安全组名称。

    表5 networks字段数据结构说明

    参数

    是否必选

    参数类型

    描述

    port

    String

    网络Port UUID。

    uuid

    String

    网络UUID。

    fixed_ip

    String

    指定的IP地址。

  • 请求样例
    1
    POST https://{ECS Endpoint}/v2.1/bbf1946d374b44a0a2a95533562ba954/servers
    
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    {
        "server": {
            "imageRef": "1a6635d8-afea-4f2b-abb6-27a202bad319",
            "flavorRef": "physical.o2.medium",
            "name": "bms_name01",
            "availability_zone": "az-dc-1",
            "networks": [
                {
                    "uuid": "8470310b-bfa2-4edf-8f64-d15196b2b2c9"
                }
            ]
        }
    }
    

响应消息

  • 响应参数

    参数

    参数类型

    描述

    server

    Object

    裸金属服务器信息。详情请参见表6

    表6 server字段数据结构说明

    参数

    参数类型

    描述

    security_groups

    Array of objects

    裸金属服务器安全组信息。详情请参见表7

    OS-DCF:diskConfig

    String

    磁盘配置,取值为以下两种:

    • MANUAL:API使用镜像中的分区方案和文件系统创建裸金属服务器。如果目标flavor磁盘较大,则API不会对剩余磁盘空间进行分区。
    • AUTO:API使用与目标flavor磁盘大小相同的单个分区创建裸金属服务器,API会自动调整文件系统以适应整个分区。

    id

    String

    裸金属服务器ID。

    links

    Array of objects

    裸金属服务器相关快捷链接信息。详情请参见表8

    adminPass

    String

    裸金属服务器管理员帐户初始登录密码。

    表7 security_groups字段数据结构说明

    参数

    参数类型

    描述

    name

    String

    裸金属服务器对应的安全组名称。

    表8 links字段数据结构说明

    参数

    参数类型

    描述

    rel

    String

    快捷链接标记名称。取值为:

    • self:包含版本号的资源链接,需要立即跟踪时使用此类链接。
    • bookmark:提供了适合长期存储的资源链接。

    href

    String

    对应快捷链接。

  • 响应样例
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    {
        "server": {
            "security_groups": [
                {
                    "name": "default"
                }
            ],
            "OS-DCF:diskConfig": "MANUAL",
            "links": [
                {
                    "rel": "self",
                    "href": "https://openstack.example.com/v2/c685484a8cc2416b97260938705deb65/servers/9ab74d89-61e7-4259-8546-465fdebe4944"
                },
                {
                    "rel": "bookmark",
                    "href": "https://openstack.example.com/c685484a8cc2416b97260938705deb65/servers/9ab74d89-61e7-4259-8546-465fdebe4944"
                }
            ],
            "id": "9ab74d89-61e7-4259-8546-465fdebe4944",
            "adminPass": "RjdD3h8U2DBe"
        }
    }
    

返回值

正常返回值:

返回值

说明

200

服务器已成功处理了请求。

其他返回值请参考状态码

错误码

请参考错误码