创建裸金属服务器
功能介绍
创建一台或多台裸金属服务器。
背景信息(设置登录鉴权方式)
裸金属服务器的登录鉴权方式包括两种:密钥对、密码。为安全起见,推荐使用密钥对方式。
- 密钥对
接口调用方法:使用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,私有镜像需要您自行确认是否安装。
- 方法一(推荐):使用adminPass字段,指定管理员账号的初始登录密码,adminPass字段的使用方法请参见表2。
约束
- 不支持文件注入功能。
- 目前仅支持创建包周期裸金属服务器。
- 不支持市场镜像创建裸金属服务器。
注意事项
- 该接口可以使用合作伙伴自身的AK/SK或者Token调用,也可以用合作伙伴子客户的AK/SK或者Token来调用。
- 如果使用AK/SK认证方式,示例代码中的region请参考地区和终端节点中“裸金属服务器 BMS”下“区域”的内容,serviceName(英文服务名称缩写)请指定为BMS。
- Endpoint请参考地区和终端节点中“裸金属服务器 BMS”下“终端节点(Endpoint)”的内容。
- 请保证账户余额充足,此接口无法使用优惠券支付,若余额不足会报“BMS.0216”错误码。若想使用优惠券,请将request请求中的isAutoPay字段设置为false,然后在华为云官网页面使用优惠券进行支付或者调用“查询订单可用优惠券”和“支付包周期产品订单”接口进行支付。
调试
您可以在API Explorer中调试该接口。
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
server |
是 |
Object |
裸金属服务器信息。详情请参见表2。 |
参数 |
是否必选 |
参数类型 |
描述 |
||||||
---|---|---|---|---|---|---|---|---|---|
imageRef |
是 |
String |
裸金属服务器使用的镜像ID或者镜像资源的URL。ID格式为通用唯一识别码(Universally Unique Identifier,简称UUID)。 镜像ID可以从镜像服务控制台获取,或者参考《镜像服务API参考》的“查询镜像列表”章节查询。 在使用“查询镜像列表”API查询时,可以添加过滤字段“?virtual_env_type=Ironic”来筛选裸金属服务器镜像。 |
||||||
flavorRef |
是 |
String |
裸金属服务器使用的规格ID,格式为physical.x.x。 规格ID可以从裸金属服务器控制台获取,也可以通过查询规格详情和规格扩展信息列表API查询。
说明:
裸金属服务器规格与镜像间的约束关系请参见裸金属服务器类型与支持的操作系统版本。 对于physical.x.x.hba类型的规格,申请的租户只能是DeC租户,且只能挂载DESS卷。 |
||||||
name |
是 |
String |
裸金属服务器名称。 取值范围:
|
||||||
metadata |
是 |
Object |
裸金属服务器元数据,key和value的长度均不大于255字节。详情请参见表3。 |
||||||
user_data |
否 |
String |
创建裸金属服务器过程中待注入的用户数据。支持注入文本。 约束:
建议密码复杂度如下:
示例:
其中,$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig为密文密码,生成方法如下:
说明:
使用Linux镜像并且采用密码登录裸金属服务器时,不支持数据注入。如何注入请参见用户数据注入。 |
||||||
adminPass |
否 |
String |
如果需要使用密码方式登录裸金属服务器,可使用adminPass字段指定裸金属服务器管理员账户初始登录密码。其中,Linux管理员账户为root。
密码复杂度要求:
|
||||||
key_name |
否 |
String |
扩展属性,指定密钥的名称。如果需要使用SSH密钥方式登录裸金属服务器,请指定已有密钥的名称。 密钥可以通过创建和导入SSH密钥(OpenStack原生)API创建,或者使用查询SSH密钥列表(OpenStack原生)API查询已有的密钥。 约束:
|
||||||
security_groups |
否 |
Array of objects |
指定裸金属服务器的安全组。详情请参见表4。 |
||||||
nics |
是 |
Array of objects |
指定裸金属服务器的网卡信息。详情请参见表5。 约束: 一个裸金属服务器最多挂载2个网卡,参数中第一个网卡会作为裸金属服务器的主网卡。若用户指定了多组网卡参数,需保证各组参数都属于同一VPC。 |
||||||
availability_zone |
是 |
String |
裸金属服务器对应可用区信息,需要指定可用区(AZ)的名称。 请参考地区和终端节点获取。 |
||||||
vpcid |
是 |
String |
裸金属服务器所属虚拟私有云(VPC),需要指定已有VPC的ID,UUID格式。VPC的ID可以从网络控制台或者参考《虚拟私有云API参考》的“查询VPC”章节获取。 |
||||||
publicip |
否 |
Object |
配置裸金属服务器的弹性公网IP信息,弹性公网IP有三种配置方式:
详情请参见表7。 |
||||||
count |
否 |
Integer |
创建裸金属服务器的数量。 约束:
|
||||||
root_volume |
否 |
Object |
裸金属服务器对应系统盘相关配置。详情请参见表8。 约束: 当规格是快速发放时,该参数必选;当规格不是快速发放时,不传该参数。查询规格是否为快速发放,参见查询裸金属服务器规格extra_specs参数的详情(废弃)。 |
||||||
data_volumes |
否 |
Array of objects |
裸金属服务器对应数据盘相关配置。每一个数据结构代表一个待创建的数据盘。详情请参见表9。 约束: 目前裸金属服务器最多可挂载60块云硬盘(包括系统盘和数据盘)。 |
||||||
extendparam |
是 |
Object |
创建裸金属服务器的附加信息。详情请参见表10。 |
||||||
schedulerHints |
否 |
Object |
裸金属服务器的调度信息。当需要在专属云中创建裸金属服务器时,该字段必选。 详情请参见表11。 |
||||||
server_tags |
否 |
List <resource_tag> |
裸金属服务器的标签,详见表12。
说明:
创建裸金属服务器时,一台裸金属服务器最多可以添加10个标签。其中,__type_baremetal为系统内部标签,因此实际能添加的标签为9个。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
op_svc_userid |
是 |
String |
用户ID(登录管理控制台,进入我的凭证,即可看到“用户ID”)。 |
BYOL |
否 |
String |
是否自带许可,取值“true”或“false”。 |
admin_pass |
否 |
String |
如果需要使用密码方式登录裸金属服务器,可使用admin_pass字段指定裸金属服务器管理员账户初始登录密码。其中,Linux管理员账户为root。
密码复杂度要求:
|
agency_name |
否 |
String |
委托的名称。 委托是由租户管理员在统一身份认证服务(Identity and Access Management,IAM)上创建的,可以作为其他租户访问此裸金属服务器的临时凭证。
说明:
委托获取、更新请参考如下步骤:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
id |
否 |
String |
裸金属服务器对应的安全组ID,对创建裸金属服务器中配置的所有网卡生效。
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
subnet_id |
是 |
String |
裸金属服务器网卡所在的子网信息。 需要指定vpcid对应VPC下已创建的子网(subnet)的网络ID(network_id),UUID格式。子网(subnet)的网络ID(network_id)可以从虚拟私有云控制台或者参考《虚拟私有云API参考》的“查询子网列表”章节获取。 |
ip_address |
否 |
String |
裸金属服务器网卡的IP地址,IPv4格式。 约束:
|
allowed_address_pairs |
否 |
Array of allow_address_pair objects |
IP/Mac对列表,详情请参见表6(扩展属性)。 约束:IP地址不允许为 “0.0.0.0/0”
|
名称 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
ip_address |
否 |
String |
IP地址。 约束:不支持0.0.0.0/0 如果allowed_address_pairs配置地址池较大的CIDR(掩码小于24位),建议为该port配置一个单独的安全组。 |
mac_address |
否 |
String |
MAC地址。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
id |
否 |
String |
创建裸金属服务器分配已有弹性公网IP时,分配的弹性公网IP的ID,UUID格式。弹性公网IP的ID可以从网络控制台或者参考《弹性公网IP API参考》的“查询弹性公网IP列表”章节获取。 约束:
|
eip |
否 |
Object |
配置裸金属服务器自动分配弹性公网IP时,创建弹性公网IP的配置参数。详情请参见表13。 |
输入publicip字段数据结构中的id和eip参数值时,只能选择其中一个输入。
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
volumetype |
是 |
String |
裸金属服务器系统盘对应的磁盘类型,需要与系统所提供的磁盘类型相匹配。
|
size |
是 |
Integer |
系统盘大小,容量单位为GB,输入大小范围为[40-1024]。 约束: 系统盘大小取值应不小于镜像中系统盘的最小值(min_disk属性)。 |
cluster_id |
否 |
String |
裸金属服务器系统盘对应的存储池的ID。
说明:
|
cluster_type |
否 |
String |
裸金属服务器系统盘对应的磁盘存储类型。磁盘存储类型枚举值:DSS(专属分布式存储)。
说明:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
volumetype |
是 |
String |
裸金属服务器数据盘对应的磁盘类型,需要与系统所提供的磁盘类型相匹配。
约束:
说明:
企业存储支持的存储类型说明可以从管理控制台或参考《专属企业存储服务用户指南》的“申请专属企业存储”章节获取。 |
size |
是 |
Integer |
数据盘大小,容量单位为GB,输入大小范围为[10-32768]。 |
shareable |
否 |
Boolean |
是否为共享磁盘。
不指定时默认为false。 |
cluster_id |
否 |
String |
裸金属服务器数据盘对应的存储池ID。
说明:
|
cluster_type |
否 |
String |
裸金属服务器数据盘对应的磁盘存储类型。磁盘存储类型枚举值:DSS(专属分布式存储)。
说明:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
chargingMode |
否 |
String |
计费模式。取值范围: prePaid:预付费,即包年包月。默认值是prePaid。 |
regionID |
否 |
String |
裸金属服务器所在区域ID。 请参考地区和终端节点获取。 |
periodType |
否 |
String |
订购周期类型。取值范围:
说明:
chargingMode为prePaid时生效,且为必选值。 |
periodNum |
否 |
Integer |
订购周期数。取值范围:
说明:
chargingMode为prePaid时生效,且为必选值。 |
isAutoRenew |
否 |
String |
是否自动续订。
说明:
chargingMode为prePaid时生效,不指定该参数或者该参数值为空时默认为不自动续订。 |
isAutoPay |
否 |
String |
下单订购后,是否自动从客户的账户中支付,而不需要客户手动去支付。
说明:
chargingMode为prePaid时生效,不指定该参数或者该参数值为空时默认为客户手动支付。 |
enterprise_project_id |
否 |
String |
企业项目ID。 该字段不传(或传为字符串“0”),则将资源绑定给默认企业项目。
说明:
关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理API参考》。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
dec_baremetal |
否 |
String |
是否在专属云中创建裸金属服务器,参数值为share或dedicate。 约束:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
是 |
String |
键
|
value |
否 |
String |
值
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
iptype |
是 |
String |
弹性公网IP地址类型。 类型枚举值:5_bgp、5_sbgp 详情请参见《弹性公网IP API参考》“申请弹性公网IP”章节的“publicip”字段说明。 |
bandwidth |
是 |
Object |
弹性公网IP带宽。详情请参见表14。 |
extendparam |
是 |
Object |
创建弹性公网IP的附加信息。详情请参见表15。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
否 |
String |
带宽名称。 |
sharetype |
是 |
String |
带宽的共享类型。 共享类型枚举:PER,表示独享;WHOLE,表示共享 |
id |
否 |
String |
共享带宽ID。创建WHOLE类型带宽的弹性公网IP时可以指定之前的共享带宽创建。 共享带宽的使用限制请参见“共享带宽简介”。
说明:
当创建WHOLE类型的带宽时,该字段必选。 |
size |
是 |
Integer |
说明:
|
chargemode |
否 |
String |
带宽的计费类型。 取值为:traffic(按流量计费)、bandwidth(按带宽计费)
说明:
如果sharetype是WHOLE并且id有值,仅支持按带宽计费,该参数会忽略。 |
请求示例
- 创建一个裸金属服务器,镜像ID为766a545a-02e1-433e-b1d1-733b5dc95e94,规格为physical.s3.large,计费模式为包年包月,使用密码方式远程登录。
1
POST https://{BMS Endpoint}/v1/{project_id}/baremetalservers
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
{ "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": "$ADMIN_PASS" }, "publicip": { "id": "1b036bce-26b4-465c-acea-99fdbb0573a3" }, "user_data": "$USER_DATA", "security_groups": [ { "id": "993f2916-5bad-4f24-bc3c-db539f1a6d19" } ] } }
- 创建一个包年包月的Linux裸金属服务器,可用区为az1,名称为bms-3b91,镜像ID为766a545a-02e1-433e-b1d1-733b5dc95e94规格为physical.o2.large且使用密钥方式远程登录。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
{ "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": "$key_name" } }
Java语言生成user_data示例如下:
1 2 3
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操作系统的裸金属服务器,可用区为az1,名称为bms-6a1e,镜像ID为fd04041a-5f35-45ae-a27c-bf30f921c6b5,规格为physical.s3.large且使用密钥方式远程登录。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
{ "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": "$USER_DATA", "security_groups": [ { "id": "33cf5e40-0b65-4e03-867d-4c67947c49be" } ], "key_name": "$key_name" } }
响应参数
名称 |
参数类型 |
说明 |
---|---|---|
order_id |
String |
提交订单成功后返回的订单ID,用户可以使用该ID对订单的处理情况进行查询(在管理控制台的“费用中心 > 我的订单”页面查询)。 |
job_id |
String |
提交任务成功后返回的任务ID,用户可以使用该ID对任务执行情况进行查询。 如何根据job_id来查询Job的执行状态,请参考查询Job状态。 |
名称 |
参数类型 |
说明 |
---|---|---|
error |
字典数据结构[1] |
提交任务异常时返回的异常信息,详情请参见表18。 |
响应示例
- 正常响应
{ "order_id": "CS2009141523OQSEQ", "job_id": "ff808081748b760c01748b7f80370003" }
错误码
请参考错误码。