华为云计算 云知识 创建裸金属服务器CreateBareMetalServers
创建裸金属服务器CreateBareMetalServers

 

功能介绍

创建一台或多台 裸金属服务器

背景信息(设置登录鉴权方式)

裸金属服务器的登录鉴权方式包括两种:密钥对、密码。为安全起见,推荐使用密钥对方式。

  • 密钥对

    指使用密钥对作为裸金属服务器的鉴权方式。

    接口调用方法:使用key_name字段,指定裸金属服务器登录时使用的密钥文件。key_name字段的使用方法请参见表2。

  • 密码

    指使用设置初始密码方式作为裸金属服务器的鉴权方式,此时,您可以通过用户名密码方式登录裸金属服务器,Linux操作系统时为root用户的初始密码。

    接口调用方法:

    • 方法一(推荐):使用adminPass字段,指定管理员帐号的初始登录密码,adminPass字段的使用方法请参见表2。

      此时,对于安装了Cloud-init 镜像 的Linux裸金属服务器,若指定user_data字段,则该adminPass字段无效。

    • 方法二:
      • 对于镜像已安装Cloud-init的Linux裸金属服务器:使用user_data字段进行注入,具体请参见表2。

    公共镜像默认已安装Cloud-init或者Cloudbase-init,私有镜像需要您自行确认是否安装。

约束

  • 不支持文件注入功能。
  • 目前仅支持创建包周期裸金属服务器
  • 不支持市场镜像创建裸金属服务器

注意事项

  • 该接口可以使用合作伙伴自身的AK/SK或者Token调用,也可以用合作伙伴子客户的AK/SK或者Token来调用。
  • 如果使用AK/SK认证方式,示例代码中的region请参考地区和 终端节点 中“裸金属服务器 BMS”下“区域”的内容,serviceName(英文服务名称缩写)请指定为BMS。
  • Endpoint请参考地区和终端节点中“裸金属服务器 BMS”下“终端节点(Endpoint)”的内容。
  • 请保证帐户余额充足,此接口无法使用优惠券支付,若余额不足会报“BMS.0216”错误码。若想使用优惠券,请将request请求中的isAutoPay字段设置为false,然后在华为云官网页面使用优惠券进行支付或者调用“查询订单可用优惠券”接口进行支付。

调试

您可以在API Explorer中调试该接口。

URI

POST /v1/{project_id}/baremetalservers

参数说明请参见表1。

表1 参数说明

参数

是否必选

描述

project_id

项目ID。

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

请求参数

参数

是否必选

参数类型

描述

server

Object

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

表2 server字段数据结构说明

参数

是否必选

参数类型

imageRef

String

flavorRef

String

name

String

metadata

Object

user_data

String

adminPass

String

key_name

String

security_groups

Array of objects

nics

Array of objects

availability_zone

String

vpcid

String

publicip

Object

count

Integer

root_volume

Object

data_volumes

Array of objects

extendparam

Object

schedulerHints

Object

server_tags

Map<String,String>

enhanced_high_speed_net

Array of objects

表3 metadata字段数据结构说明

参数

是否必选

参数类型

描述

op_svc_userid

String

用户ID(登录管理控制台,进入我的凭证,即可看到“用户ID”)。

BYOL

String

是否自带许可,取值“true”或“false”。

admin_pass

String

如果需要使用密码方式登录裸金属服务器,可使用admin_pass字段指定裸金属服务器管理员帐户初始登录密码。其中,Linux管理员帐户为root。

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

agency_name

String

委托的名称。

委托是由租户管理员在 统一身份认证 服务(Identity and Access Management, IAM )上创建的,可以作为其他租户访问此裸金属服务器的临时凭证。

说明:

委托获取、更新请参考如下步骤:

  1. 使用IAM服务提供的查询指定条件下的委托列表接口,获取有效可用的委托名称。
  2. 使用更新裸金属服务器元数据接口,更新metadata中agency_name字段为新的委托名称。
表4 security_groups字段数据结构说明

参数

是否必选

参数类型

描述

id

String

裸金属服务器对应的安全组ID,对创建裸金属服务器中配置的所有网卡生效。

  • 当该参数未指定时默认给裸金属服务器绑定default安全组。
  • 当该参数传值(UUID格式)时需要指定已有安全组的ID。获取已有安全组的方法请参见《 虚拟私有云 API参考》的“查询安全组列表”章节。
表5 nics字段数据结构说明

参数

是否必选

参数类型

描述

subnet_id

String

裸金属服务器网卡所在的子网信息。

需要指定vpcid对应VPC下已创建的子网(subnet)的网络ID(network_id),UUID格式。子网(subnet)的网络ID(network_id)可以从虚拟 私有云 控制台或者参考《虚拟私有云API参考》的“查询子网列表”章节获取。

port_id

String

裸金属服务器的网卡ID。该字段不为空时,表示指定网卡创建裸金属服务器,此时subnet_id、security_groups、ip_address、ipv6_enable、ipv6_bandwidth字段不生效。

网卡ID可以从虚拟私有云控制台或者参考《虚拟私有云API参考》的“查询端口列表”章节获取。

约束:

  • 网卡状态必须为DOWN。
  • 网卡对应的vpcid必须和裸金属服务器所属VPC一致。

ip_address

String

裸金属服务器网卡的IP地址,IPv4格式。

约束:

  • 不填或空字符串,默认在子网中自动分配一个未使用的IP作为网卡的IP地址。
  • 若指定IP地址,该IP地址必须在子网的网段内,且未被使用。
  • 批量创建裸金属服务器时,不支持指定IP地址。
表6 publicip字段数据结构说明

参数

是否必选

参数类型

描述

id

String

创建裸金属服务器分配已有 弹性公网IP 时,分配的弹性 公网IP 的ID,UUID格式。弹性公网IP的ID可以从网络控制台或者参考《弹性公网IP API参考》的“查询弹性公网IP列表”章节获取。

约束:

  • 只能分配状态(status)为DOWN的弹性公网IP。
  • 批量创建裸金属服务器时,不能使用已有弹性公网IP,即不支持此参数。

eip

Object

配置裸金属服务器自动分配弹性公网IP时,创建弹性公网IP的配置参数。详情请参见表12。

输入publicip字段数据结构中的id和eip参数值时,只能选择其中一个输入。

表7 root_volume字段数据结构说明

参数

是否必选

参数类型

描述

volumetype

String

裸金属服务器系统盘对应的磁盘类型,需要与系统所提供的磁盘类型相匹配。

  • GPSSD:通用型SSD磁盘类型
  • SAS:高IO磁盘类型
  • SSD:超高IO磁盘类型

size

Integer

系统盘大小,容量单位为GB,输入大小范围为[40-1024]。

约束:

系统盘大小取值应不小于镜像中系统盘的最小值(min_disk属性)。

cluster_id

String

裸金属服务器系统盘对应的存储池的ID。

说明:

cluster_type

String

裸金属服务器系统盘对应的磁盘存储类型。磁盘存储类型枚举值:DSS(专属分布式存储)。

说明:
表8 data_volumes字段数据结构说明

参数

是否必选

参数类型

描述

volumetype

String

裸金属服务器数据盘对应的磁盘类型,需要与系统所提供的磁盘类型相匹配。

  • GPSSD:通用型SSD磁盘类型
  • SAS:高IO磁盘类型
  • SSD:超高IO磁盘类型

约束:

  • 在专属云中申请裸金属服务器时,须使用 专属企业存储 ,此时该字段前缀必须是DESS_。

    枚举值如下:

    DESS_SAS_ISCSI:普通I/O企业存储

    DESS_SAS_FC:普通I/O企业存储(低延时)

    DESS_MIX_ISCSI:高I/O企业存储

    DESS_MIX_FC:高I/O企业存储(低延时)

    DESS_SSD_ISCSI:超高I/O企业存储

    DESS_SSD_FC:超高I/O企业存储(低延时)

  • 所有用户,包年包月场景下,不能挂载DESS卷。
说明:

企业存储支持的存储类型说明可以从管理控制台或参考《专属企业存储服务用户指南》的“申请专属企业存储”章节获取。

size

Integer

数据盘大小,容量单位为GB,输入大小范围为[10-32768]。

shareable

Boolean

是否为共享磁盘。

不指定时默认为false。

cluster_id

String

裸金属服务器数据盘对应的存储池ID。

说明:

cluster_type

String

裸金属服务器数据盘对应的磁盘存储类型。磁盘存储类型枚举值:DSS(专属分布式存储)。

说明:
表9 创建裸金属服务器的extendparam字段数据结构说明

参数

是否必选

参数类型

描述

chargingMode

String

计费模式。取值范围:

prePaid:预付费,即包年包月。默认值是prePaid。

regionID

String

裸金属服务器所在区域ID。

请参考地区和终端节点获取。

periodType

String

订购周期类型。取值范围:

  • month:月
  • year:年
说明:

chargingMode为prePaid时生效,且为必选值。

periodNum

Integer

订购周期数。取值范围:

  • periodType=month(周期类型为月)时,取值为[1-9]。
  • periodType=year(周期类型为年)时,取值为1。
说明:

chargingMode为prePaid时生效,且为必选值。

isAutoRenew

String

是否自动续订。

  • true:自动续订
  • false:不自动续订
说明:

chargingMode为prePaid时生效,不指定该参数或者该参数值为空时默认为不自动续订。

isAutoPay

String

下单订购后,是否自动从客户的帐户中支付,而不需要客户手动去支付。

  • true:是(自动支付)
  • false:否(需要客户手动支付)
说明:

chargingMode为prePaid时生效,不指定该参数或者该参数值为空时默认为客户手动支付。

enterprise_project_id

String

企业项目ID。

该字段不传(或传为字符串“0”),则将资源绑定给默认企业项目。

说明:

关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理API参考》。

表10 schedulerHints字段数据结构说明

参数

是否必选

参数类型

描述

dec_baremetal

String

是否在专属云中创建裸金属服务器,参数值为share或dedicate。

约束:

  • 该值不传时默认为share。
  • 在专属云中创建裸金属服务器时,必须指定该字段为dedicate。
表11 enhanced_high_speed_net字段数据结构说明

参数

是否必选

参数类型

描述

max_link_number

Integer

单个增强高速网卡的物理网口数量。

说明:

若不使用该字段,则默认按总带宽创建。

物理网口数量和带宽的查询方法:

通过查询裸金属服务器规格extra_specs参数的详情(OpenStack原生)接口查询指定规格的baremetal:netcard_detail信息。若baremetal:netcard_detail信息包含2*10GE,表示该网卡有两个物理网口,单个物理网口的带宽为10GE。

若baremetal:netcard_detail信息为:1*100G IB + 2*10GE(82599 Standard Card) + Tesla P100 * 83、1*100G IB + 2*10GE(82599 Standard Card) + Tesla V100 * 84、1*100G IB + 2*10GE等,则不需要使用该字段。

若baremetal:netcard_detail信息为2 x 2*10GE,对应传参样例:

"enhanced_high_speed_net": [
    {
        "max_link_number": 1
    },
    {
        "max_link_number": 1
    }
]

若baremetal:netcard_detail信息为2 x 2*10GE + 2*16G FC,对应传参样例:

"enhanced_high_speed_net": [
    {
        "max_link_number": 1
    },
    {
        "max_link_number": 1
    }
]

若baremetal:netcard_detail信息为2 x 2*25GE,表示该网卡有两个物理网口,单个物理网口的带宽为10GE。对应传参样例:

"enhanced_high_speed_net": [
    {
        "max_link_number": 1
    },
    {
        "max_link_number": 1
    }
]
表12 eip字段数据结构说明

参数

是否必选

参数类型

描述

iptype

String

弹性公网IP地址类型。

类型枚举值:5_bgp、5_sbgp

详情请参见《弹性公网IP API参考》“申请弹性公网IP”章节的“publicip”字段说明。

bandwidth

Object

弹性公网IP带宽。详情请参见表13。

extendparam

Object

创建弹性公网IP的附加信息。详情请参见表14。

表13 bandwidth字段数据结构说明

参数

是否必选

参数类型

描述

name

String

带宽名称。

sharetype

String

带宽的共享类型。

共享类型枚举:PER,表示独享;WHOLE,表示共享

id

String

共享带宽ID。创建WHOLE类型带宽的弹性公网IP时可以指定之前的共享带宽创建。

共享带宽的使用限制请参见“共享带宽简介”。

说明:

当创建WHOLE类型的带宽时,该字段必选。

size

Integer

  • 取值范围:默认5Mbit/s~2000Mbit/s(具体范围以各Region配置为准,请参见管理控制台对应页面显示)。
  • 功能说明:带宽大小。共享带宽的大小有最小值限制,默认为5M。
说明:
  • 如果传入的参数为小数(如10.2)或者字符类型(如10),会自动强制转换为整数。带宽小于300Mbit/s时,步长支持1Mbit/s;带宽为300Mbit/s~1000Mbit/s时,步长支持50Mbit/s;带宽为1000Mbit/s~2000Mbit/s时,步长支持1000Mbit/s。
  • 如果sharetype是PER,该参数必选;如果sharetype是WHOLE并且id有值,该参数会忽略。

chargemode

String

带宽的计费类型。

取值为:traffic(按流量计费)、bandwidth(按带宽计费)

  • 未传该字段,表示按带宽计费。
  • 字段值为空,表示按带宽计费。
说明:

如果sharetype是WHOLE并且id有值,仅支持按带宽计费,该参数会忽略。

表14 创建弹性公网IP的extendparam字段数据结构说明

参数

是否必选

参数类型

描述

chargingMode

String

弹性公网IP的计费模式。若带宽计费类型为bandwidth,则支持prePaid和postPaid;若带宽计费类型为traffic,仅支持postPaid。

取值范围:

  • prePaid:预付费,即包年包月
  • postPaid:后付费,即按需付费
说明:

如果bandwidth对象中sharetype是WHOLE且id有值,弹性公网IP只能创建为按需付费的,故该参数传参“prePaid”无效。

请求示例

  • 创建一个裸金属服务器,镜像ID为766a545a-02e1-433e-b1d1-733b5dc95e94,规格为physical.s3.large,计费模式为包年包月,且使用密码方式远程登录。
    POST https://{BMS Endpoint}/v1/{project_id}/baremetalservers
    
    {
        "server": {
            "availability_zone": "az1",
            "name": "bms-75c7",
            "imageRef": "766a545a-02e1-433e-b1d1-733b5dc95e94",
            "flavorRef": "physical.s3.large",
            "data_volumes": [
                {
                    "volumetype": "SAS",
                    "size": 10,
                    "shareable": false
                }
            ],
            "vpcid": "8df83bf2-fd2e-4ee0-9692-c0b7736513fb",
            "nics": [
                {
                    "subnet_id": "c6bb8788-4fd1-4a8f-adab-7eba3bed8616",
                    "ip_address": ""
                }
            ],
            "count": 1,
            "schedulerHints": {
                "dec_baremetal": "share"
            },
            "extendparam": {    
                "chargingMode": "prePaid",
                "periodType": "month",
                "periodNum": 1,
                "isAutoRenew": "true",
                "isAutoPay": "true",
                "regionID": "region01"
            },
            "metadata": {
                "op_svc_userid": "59781460e9e54886a7d03df7d3f3fc81",
                "BYOL": "false",
                "admin_pass": ""
            },
            "publicip": {
                "id": "1b036bce-26b4-465c-acea-99fdbb0573a3"
            },
            "user_data":  "",
            "security_groups": [
                {
                    "id": "993f2916-5bad-4f24-bc3c-db539f1a6d19"
                }
            ]
        }
    }
    
  • 创建一个包年包月的Linux裸金属服务器,可用区为az1,名称为bms-3b91,镜像ID为766a545a-02e1-433e-b1d1-733b5dc95e94规格为physical.o2.large且使用密钥方式远程登录。
    {
        "server": {
            "availability_zone": "az1",
            "name": "bms-3b91",
            "imageRef": "766a545a-02e1-433e-b1d1-733b5dc95e94",
            "flavorRef": "physical.o2.large",
            "data_volumes": [
                {
                    "volumetype": "SAS",
                    "size": 10,
                    "shareable": true
                }
            ],
            "vpcid": "8df83bf2-fd2e-4ee0-9692-c0b7736513fb",
            "nics": [
                {
                    "subnet_id": "c6bb8788-4fd1-4a8f-adab-7eba3bed8616",
                    "ip_address": ""
                },
                {
                    "subnet_id": "2b8bcf33-33f2-4a63-aa9c-b1e17ff0ed7f",
                    "ip_address": ""
                }
            ],
            "count": 1,
            "schedulerHints": {
                "dec_baremetal": "share"
            },
            "extendparam": {
                "chargingMode": "prePaid",
                "periodType": "month",
                "periodNum": 1,
                "isAutoRenew": "true",
                "isAutoPay": "true",
                "regionID": "region01"
            },
            "metadata": {
                "op_svc_userid": "59781460e9e54886a7d03df7d3f3fc81",
                "BYOL": "false"
            },
            "publicip": {
                "eip": {
                    "iptype": "5_bpg",
                    "bandwidth": {
                        "chargemode": "",
                        "name": "bms-3b91-bandwidth",
                        "size": 1,
                        "sharetype": "PER"
                    },
                    "extendparam": {
                       "chargingMode": "prePaid"
                    }
                }
            },
            "security_groups": [
                {
                    "id": "993f2916-5bad-4f24-bc3c-db539f1a6d19"
                }
            ],
            "key_name": "KeyPair-zbb29"
        }
    }
    

    Java 语言生成 user_data示例如下:

    String userData_org = "#!/bin/bash \r\n echo    'root:xxxxx' | chpasswd ;";
    byte[] userData_byte = userData_org.getBytes();
    String userData = new BASE64Encoder().encode(userData_byte);
    
  • 创建包年包月的Windows操作系统的裸金属服务器,可用区为azl,名称为bms-6a1e,镜像ID为fd04041a-5f35-45ae-a27c-bf30f921c6b5,规格为physical.s3.large且使用密钥方式远程登录。
    { 
         "server": { 
             "availability_zone": "az1", 
             "name": "bms-6a1e", 
             "imageRef": "fd04041a-5f35-45ae-a27c-bf30f921c6b5", 
             "flavorRef": "physical.s3.large", 
             "data_volumes": [ 
                 { 
                     "volumetype": "SAS", 
                     "size": 10, 
                     "shareable": false 
                 } 
             ], 
             "vpcid": "0adc2847-c160-4263-be1f-e03d36e93e32", 
             "nics": [ 
                 { 
                     "subnet_id": "4f1cf6cc-4cc3-41d3-8192-625293dccce0", 
                     "ip_address": "" 
                 } 
             ], 
             "count": 1, 
             "schedulerHints": { 
                 "dec_baremetal": "share" 
             }, 
            "extendparam": { 
                "chargingMode": "prePaid", 
                "periodType": "month", 
                "periodNum": 1, 
                "isAutoRenew": "true", 
                "isAutoPay": "true", 
                "regionID": "region1" 
             }, 
             "metadata": { 
                "op_svc_userid": "8a74baed155b47e8b59fbca853d6cb48", 
                "BYOL": "false" 
             }, 
             "publicip": { 
                 "id": "db9c4f39-fabd-4cc2-8685-82e7715d099f" 
             }, 
             "user_data": "cWF6PTEyMw==", 
             "security_groups": [ 
                 { 
                     "id": "33cf5e40-0b65-4e03-867d-4c67947c49be" 
                 } 
             ], 
             "key_name": "KeyPair-Maoz" 
         } 
     }
    

响应参数

表15 正常响应要素说明

名称

参数类型

说明

order_id

String

提交订单成功后返回的订单ID,用户可以使用该ID对订单的处理情况进行查询(在管理控制台的“费用中心 > 我的订单”页面查询)。

job_id

String

提交任务成功后返回的任务ID,用户可以使用该ID对任务执行情况进行查询。

如何根据job_id来查询Job的执行状态,请参考查询Job状态

表16 异常响应要素说明

名称

参数类型

说明

error

字典数据结构[1]

提交任务异常时返回的异常信息,详情请参见表 error数据结构。

表17 error数据结构

名称

参数类型

说明

message

String

任务异常错误信息描述。

code

String

任务异常错误信息编码。

响应示例

  • 正常响应
    { 
        "order_id": "CS2009141523OQSEQ",
        "job_id": "ff808081748b760c01748b7f80370003"
    }

返回值

正常返回值:

返回值

说明

200

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

其他返回值请参考状态码

错误码

请参考错误码

上一篇:查询指定客户端ShowAgent 下一篇:中景合天智慧景区综合管理服务平台智慧营销功能介绍

裸金属服务器 BMS

裸金属服务器(Bare Metal Server)为您和您的企业提供专属的云上物理服务器,具备传统物理服务器高性能的同时,兼具云上高安全可靠、灵活快速发放等特点,助力企业在数据库、大数据、容器、高性能计算、AI等场景关键业务云上创新