华为云用户手册

  • 创建本地盘裸金属服务器 如下示例是创建本地盘裸金属服务器最简单的配置。 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 { "server": { "availability_zone": "cn-north-4a", "name": "bms-test01", "imageRef": "766a545a-02e1-433e-b1d1-733b5dc95e94", "flavorRef": "physical.s3.large", "vpcid": "8df83bf2-fd2e-4ee0-9692-c0b7736513fb", "nics": [ { "subnet_id": "c6bb8788-4fd1-4a8f-adab-7eba3bed8616" } ], "extendparam": { "chargingMode": "prePaid", "periodType": "month", "periodNum": 1, "isAutoRenew": "true", "isAutoPay": "true", "regionID": "cn-north-4" }, "metadata": { "op_svc_userid": "59781460e9e54886a7d03df7d3f3fc81" }, "key_name": "$key_name" } } availability_zone:服务所在区域的可用区,您可以在地区和终端节点查询。例如,“cn-north-4a”表示“华北-北京四”的“可用区1”。 name:裸金属服务器的名称,由您自定义,例如取名为“bms-test01”。 imageRef:镜像ID,即创建裸金属服务器使用哪个镜像(操作系统)。镜像ID可以在 镜像服务 控制台查询。 flavorRef:裸金属服务器使用的规格ID,格式为physical.x.x。规格ID可以从裸金属服务器控制台获取,并参考前提条件判断规格的启动源,此处选择启动源为本地盘的规格,例如“physical.s3.large”。 vpcid:裸金属服务器所在VPC(虚拟私有云)的ID,您可以在虚拟私有云控制台查询,也可以通过查询VPC列表API获取。 nics.subnet_id:VPC内子网的网络ID,您可以在虚拟私有云控制台查询,也可以通过查询子网列表API获取。 extendparam:“chargingMode”表示计费模式,“prePaid”为预付费,即包年/包月;“periodType”表示订购周期类型,“month”表示按月;“periodNum”表示订购周期数,本例中的“1”表示一个月;“isAutoRenew”表示是否自动续订;“isAutoPay”表示下单订购后,是否自动从客户的账户中支付,而不需要客户手动去支付;“regionID”表示服务所在的区域ID,您可以在地区和终端节点查询。 metadata.op_svc_userid:用户ID,您可以在我的凭证查询。 key_name:密钥对名称。如果使用SSH密钥方式登录裸金属服务器,需要指定已有密钥的名称。您可以在密钥对控制台查询。
  • 前提条件 您需要规划裸金属服务器所在的区域信息,并根据区域确定调用API的Endpoint,详细信息请参见终端节点(Endpoint)。 裸金属服务器的启动源分为本地盘和云硬盘,对应的裸金属服务器为本地盘裸金属服务器,和快速发放裸金属服务器。有两种方式查看启动源是本地盘还是云硬盘: 在裸金属服务器控制台选择某一规格后,如果“磁盘”配置项中出现“系统盘”参数,表示该规格的启动盘为云硬盘。反之为本地盘。 调用查询裸金属服务器规格extra_specs参数的详情API,在响应参数中查找“baremetal:extBootType”取值,“LocalDisk”表示启动源为本地盘,“Volume”表示启动源为云硬盘。
  • 响应参数 参数 参数类型 描述 extra_specs Object 描述裸金属服务器规格的键值对。 capabilities:cpu_arch:裸金属服务器的CPU架构,取值为x86_64(适用于x86机型)或aarch64(适用于ARM机型) baremetal:disk_detail:磁盘的描述信息。 capabilities:hypervisor_type:hypervisor类型,固定为“ironic”。 baremetal:__support_evs:是否支持云硬盘,取值为true或false。如果裸金属服务器规格中没有此参数,表示不支持云硬盘。 baremetal:extBootType:表示裸金属服务器的启动源,取值为LocalDisk(表示本地盘)或Volume(表示云硬盘,即快速发放) baremetal:net_num:裸金属服务器实际可绑定的网卡数量。 baremetal:netcard_detail:网卡的描述信息。 baremetal:cpu_detail:CPU的描述信息。 resource_type:资源类型,固定为“ironic”。 baremetal:memory_detail:内存的描述信息。
  • 响应示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 { "extra_specs": { "capabilities:cpu_arch": "x86_64", "baremetal:disk_detail": "SAS 8T", "capabilities:hypervisor_type": "ironic", "baremetal:__support_evs": "true", "baremetal:extBootType": "LocalDisk", "capabilities:board_type": "s2m", "baremetal:net_num": "2", "baremetal:netcard_detail": "2*10GE", "baremetal:cpu_detail": "2*8coreIntel Xeon E5-2667 V43.2GHz", "resource_type": "ironic", "baremetal:memory_detail": "256GB DDR4 RAM (GB)" } }
  • 请求示例 强制关闭ID为616fb98f-46ca-475e-917e-2563e5a8cd19和726fb98f-46ca-475e-917e-2563e5a8cd20的裸金属服务器。 1 POST https://{BMS Endpoint}/v1/bbf1946d374b44a0a2a95533562ba954/baremetalservers/action 1 2 3 4 5 6 7 8 9 10 11 12 13 { "os-stop": { "type": "HARD", "servers": [ { "id": "616fb98f-46ca-475e-917e-2563e5a8cd19" }, { "id": "726fb98f-46ca-475e-917e-2563e5a8cd20" } ] } }
  • 请求参数 关闭裸金属服务器请求参数,必须如请求示例中,以“os-stop”字段下发关闭裸金属服务器请求。 参数 是否必选 参数类型 描述 os-stop 是 Object 标记为关闭裸金属服务器操作,详情请参见表2。 表2 os-stop字段数据结构说明 参数 是否必选 参数类型 描述 servers 是 Array of objects 裸金属服务器ID列表,详情请参见表3。 type 否 String 关机类型: SOFT:普通关机(不生效)。 HARD:强制关机(默认)。 表3 servers字段数据结构说明 参数 是否必选 参数类型 描述 id 是 String 裸金属服务器ID。 可以从裸金属服务器控制台查询,或者通过调用查询裸金属服务器列表(OpenStack原生)获取。
  • 响应参数 正常响应要素 表4 正常响应要素说明 名称 参数类型 说明 job_id String 提交任务成功后返回的任务ID,用户可以使用该ID对任务执行情况进行查询。 如何根据job_id来查询Job的执行状态,请参考查询Job状态。 异常响应要素 表5 异常响应要素说明 名称 参数类型 说明 error 字典数据结构 提交任务异常时返回的异常信息,详情请参见表6。 表6 error数据结构 名称 参数类型 说明 message String 任务异常错误信息描述。 code String 任务异常错误信息编码。
  • URI POST /v1/{project_id}/baremetalservers/{server_id}/nics/delete 参数说明请参见表1。 表1 参数说明 参数 是否必选 描述 project_id 是 项目ID。 获取方式请参见获取项目ID。 server_id 是 裸金属服务器ID。 可以从裸金属服务器控制台查询,或者通过调用查询裸金属服务器列表(OpenStack原生)获取。
  • 响应参数 表4 正常响应要素说明 名称 参数类型 说明 job_id String 提交任务成功后返回的任务ID,用户可以使用该ID对任务执行情况进行查询。 如何根据job_id来查询Job的执行状态,请参考查询Job状态。 表5 异常响应要素说明 名称 参数类型 说明 error 字典数据结构 提交任务异常时返回的异常信息,详情请参见表6。 表6 error数据结构 名称 参数类型 说明 message String 任务异常错误信息描述。 code String 任务异常错误信息编码。
  • 请求示例 更新ID为cf2a8b97-b5c6-47ef-9714-eb27adf26e5b的裸金属服务器的元数据,自定义metadata键值对为key和value。 1 POST https://{BMS Endpoint}/v1/bbf1946d374b44a0a2a95533562ba954/baremetalservers/cf2a8b97-b5c6-47ef-9714-eb27adf26e5b/metadata 1 2 3 4 5 { "metadata": { "key": "value" } }
  • URI POST /v1/{project_id}/baremetalservers/{server_id}/reinstallos 参数说明请参见表1。 表1 参数说明 参数 是否必选 描述 project_id 是 项目ID。 获取方式请参见获取项目ID。 server_id 是 裸金属服务器ID。 可以从裸金属服务器控制台查询,或者通过调用查询裸金属服务器列表(OpenStack原生)获取。
  • 约束 使用私有镜像创建的裸金属服务器,请确保已经安装了Cloud-init(Linux镜像)或Cloudbase-init(Windows镜像)。如使用未安装Cloud-init或Cloudbase-init的镜像,该接口不能注入密钥或密码。公共镜像默认已安装Cloud-init或Cloudbase-init。 执行重装操作系统任务时,请勿并行执行其他任务,否则可能会引起重装操作系统失败。 关机状态或者重装操作系统失败的裸金属服务器,才能执行重装操作。 目前Windows镜像不支持注入密码,Linux镜像的user_data为加密后的密码。
  • 请求参数 参数 是否必选 参数类型 描述 os-reinstall 是 Object 标记为重装裸金属服务器操作。详情请参见表2。 表2 os-reinstall字段数据结构说明 参数 是否必选 参数类型 描述 adminpass 否 String 裸金属服务器管理员账号的初始登录密码。 其中,Linux管理员账户为root,Windows管理员账户为Administrator。 建议密码复杂度如下: 长度为8-26位。 密码至少必须包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{}]:,./?)中的三种。 密码不能包含用户名或用户名的逆序。 说明: 对于Windows裸金属服务器,不能包含用户名中超过两个连续字符的部分。 对于Linux裸金属服务器也可使用user_data字段实现密码注入,此时adminpass字段无效。 adminpass和keyname不能同时有值。 adminpass和keyname如果同时为空,此时,metadata中的user_data属性必须有值。 keyname 否 String 密钥名称。 密钥可以通过创建和导入SSH密钥(OpenStack原生)API创建,或者使用查询SSH密钥列表(OpenStack原生)API查询已有的密钥。 userid 否 String 用户ID(登录管理控制台,进入我的凭证,即可看到“用户ID”)。 metadata 否 Object 重装裸金属服务器的元数据。详情请参见表3。 表3 metadata字段数据结构说明 参数 是否必选 参数类型 描述 user_data 否 String 重装裸金属服务器过程中待注入的Linux镜像root密码,用户自定义初始化密码。 注:修改密码脚本需经base64编码。 建议密码复杂度如下: 长度为8-26位。 密码至少必须包含大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符(!@$%^-_=+[{}]:,./?)中的三种。 示例: 1 2 #!/bin/bash echo 'root:$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig/GpOkLcOhab9smJoLKYm/Tf9Hcwa6DpiPDhdHfGEAPajFmLZa0YDd910' | chpasswd -e 此脚本需经base64编码方式编码。 其中,$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig为密文密码,生成方法如下: 生成加密盐值 1 2 [root@test linux]# python -c "import crypt, getpass, pwd;print crypt.mksalt()" $6$V6azyeLwcD3CHlpY 根据盐值生成密文密码 1 2 [root@test linux]# python -c "import crypt, getpass, pwd;print crypt.crypt('Cloud.1234','\$6\$V6azyeLwcD3CHlpY')" $6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig/GpOkLcOhab9smJoLKYm/Tf9Hcwa6DpiPDhdHfGEAPajFmLZa0YDd910 密文生成之后,修改密码脚本需经base64编码方式编码。
  • 请求示例 重装操作系统,裸金属服务器ID为cf2a8b97-b5c6-47ef-9714-eb27adf26e5b,密钥信息为KeyPair-350b,用户ID为7e25b1da389f4697a79df3a0e5bd494e。 1 POST https://{BMS Endpoint}/v1/bbf1946d374b44a0a2a95533562ba954/baremetalservers/cf2a8b97-b5c6-47ef-9714-eb27adf26e5b/reinstallos 1 2 3 4 5 6 7 8 9 { "os-reinstall": { "keyname": "$key_name", "userid": "7e25b1da389f4697a79df3a0e5bd494e", "metadata": { "user_data": "$USER_DATA" } } }
  • URI GET /v1/{project_id}/baremetalservers/{server_id}/os-volume_attachments 参数说明请参见表1。 表1 参数说明 参数 是否必选 描述 project_id 是 项目ID。 获取方式请参见获取项目ID。 server_id 是 裸金属服务器ID。 可以从裸金属服务器控制台查询,或者通过调用查询裸金属服务器列表(OpenStack原生)获取。
  • 请求示例 查询ID为4d8c3732-a248-40ed-bebc-539a6ffd25c0的裸金属服务器上挂载的云硬盘信息。 1 GET https://{BMS Endpoint}/v1/bbf1946d374b44a0a2a95533562ba954/baremetalservers/4d8c3732-a248-40ed-bebc-539a6ffd25c0/os-volume_attachments
  • 响应参数 参数 参数类型 描述 volumeAttachments Array of objects 裸金属服务器挂载信息列表,详情请参见表2。 表2 volumeAttachments字段数据结构说明 参数 参数类型 描述 device String 挂载目录,例如“/dev/sdd”。 id String 挂载资源ID。 serverId String 所属裸金属服务器ID。 volumeId String 挂载云磁盘ID。
  • 响应示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 { "volumeAttachments": [ { "device": "/dev/sdd", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "serverId": "4d8c3732-a248-40ed-bebc-539a6ffd25c0", "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803" }, { "device": "/dev/sdc", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f804", "serverId": "4d8c3732-a248-40ed-bebc-539a6ffd25c0", "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f804" } ] }
  • 响应示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 { "servers": [ { "name": "bms", "links": [ { "rel": "self", "href": "https://openstack.example.com/v2.1/c685484a8cc2416b97260938705deb65/servers/820abbd0-2d8b-4bc5-ae46-69cacfd4fbaa" }, { "rel": "bookmark", "href": "https://openstack.example.com/c685484a8cc2416b97260938705deb65/servers/820abbd0-2d8e-4bc5-ae46-69cacfd4fbaa" } ], "id": "820abbd0-2d8e-4bc5-ae46-69cacfd4fbaa" } ] }
  • URI GET /v2.1/{project_id}/servers{?changes-since={changes-since}&image={image}&flavor={flavor}&name={name}&status={status}&limit={limit}&marker={marker}&tags={tags}¬-tags={not-tags}&reservation_id={reservation_id}&sort_key={sort_key}&sort_dir={sort_dir}} 参数说明请参见表1。 表1 参数说明 参数 是否必选 描述 project_id 是 项目ID。 获取方式请参见获取项目ID。
  • 请求参数 参数 是否必选 参数类型 描述 changes-since 否 String 裸金属服务器上次更新状态的时间戳信息。格式为ISO 8601时间格式,例如:2013-06-09T06:42:18Z。 image 否 String 镜像ID。 可以在镜像服务控制台查询,也可以调用“查询镜像列表”API获取。 说明: 在使用image作为条件过滤时,不能同时支持其他过滤条件和分页条件。如果同时指定image及其他条件,则以image条件为准;当条件不含image时,接口功能不受限制。 flavor 否 String 规格ID。 可以在裸金属服务器控制台查询,也可以调用查询裸金属服务器规格信息列表(OpenStack原生)API获取。 name 否 String 裸金属服务器名称,使用模糊匹配的方式查询。 例如,“?name=bob”正则表达式会同时返回bob和bobb。如果必须仅匹配bob,则可以使用与基础数据库服务器的语法相匹配的正则表达式,如MySQL或PostgreSQL(官方网站:https://www.postgresql.org/docs/9.2/static/functions-matching.html)。 status 否 String 裸金属服务器状态。 取值范围: ACTIVE:运行中/正在关机/删除中 BUILD:创建中 ERROR:故障 HARD_REBOOT:强制重启中 REBOOT:重启中 SHUTOFF:关机/正在开机/删除中/重建中/重装操作系统中/重装操作系统失败/冻结 limit 否 Integer 每页返回裸金属服务器的条数。 marker 否 String 从marker指定的裸金属服务器ID的下一条数据开始查询。 tags 否 String 查询tag字段中包含该值的裸金属服务器。 微版本2.26新增 not-tags 否 String 查询tag字段中不包含该值的裸金属服务器,值为标签的Key。 说明: 如果之前添加的Tag为“Key.Value”的形式,则查询的时候需要使用“Key”来查询。 例如:之前添加的tag为“a.b”,则升级后,查询时需使用“not-tags=a”。 微版本2.26新增 reservation_id 否 String 批量创建裸金属服务器时,指定该预留ID,可以查询同批次创建的裸金属服务器。 微版本2.26新增 sort_key 否 String 用于排序的属性,包括uuid(裸金属服务器的uuid)、vm_state(裸金属服务器的状态)、display_name(裸金属服务器名称)、task_state(裸金属服务器任务状态)、power_state(电源状态)、created_at(创建时间)、updated_at(更新时间)、availability_zone(可用区)。可以指定多对sort_key和sort_dir。 默认排序顺序为created_at逆序。 sort_dir 否 String 排序方向。 asc:升序 desc:降序(默认值)
  • 请求示例 查询裸金属服务器列表。 1 GET https://{E CS Endpoint}/v2.1/bbf1946d374b44a0a2a95533562ba954/servers 查询标签中包含__type_baremetal的裸金属服务器列表。 1 GET https://{ECS Endpoint}/v2.1/bbf1946d374b44a0a2a95533562ba954/servers?tags=__type_baremetal 查询标签中包含__type_baremetal且名称包含bms-test01的裸金属服务器列表。 1 GET https://{ECS Endpoint}/v2.1/bbf1946d374b44a0a2a95533562ba954/servers?tags=__type_baremetal&name=bms-test01
  • 响应参数 参数 参数类型 描述 servers Array of objects 裸金属服务器信息列表。详情请参见表2。 表2 servers字段数据结构说明 参数 参数类型 描述 name String 裸金属服务器名称。 id String 裸金属服务器唯一标识。 links Array of objects 裸金属服务器相关快捷链接信息。详情请参见表3。 表3 links字段数据结构说明 参数 参数类型 描述 rel String 快捷链接标记名称。取值为: self:包含版本号的资源链接,需要立即跟踪时使用此类链接。 bookmark:提供了适合长期存储的资源链接。 href String 对应快捷链接。
  • 请求参数 参数 是否必选 参数类型 描述 volumeAttachment 是 Object 要挂载的卷相关信息,详情请参见表2。 表2 volumeAttachment数据结构说明 参数 是否必选 参数类型 描述 volumeId 是 String 要挂卷的卷ID。 可以从云硬盘控制台查询,或者通过调用“查询云硬盘列表”API获取。 device 否 String 磁盘挂载点,如/dev/sda、/dev/sdb。 新增加的磁盘挂载点不能和已有的磁盘挂载点相同。 需要根据已有设备名称顺序指定,否则不写device或device的值为""时,由系统自动生成。
  • 请求示例 挂载ID为b53f23bd-ee8f-49ec-9420-d1acfeaf91d6的云硬盘到ID为cf2a8b97-b5c6-47ef-9714-eb27adf26e5b的裸金属服务器。 1 POST https://{BMS Endpoint}/v1/bbf1946d374b44a0a2a95533562ba954/baremetalservers/cf2a8b97-b5c6-47ef-9714-eb27adf26e5b/attachvolume 1 2 3 4 5 6 { "volumeAttachment": { "volumeId": "b53f23bd-ee8f-49ec-9420-d1acfeaf91d6", "device": "" } }
  • URI POST /v1/{project_id}/baremetalservers/{server_id}/attachvolume 参数说明请参见表1。 表1 参数说明 参数 是否必选 描述 project_id 是 项目ID。 获取方式请参见获取项目ID。 server_id 是 裸金属服务器ID。 可以从裸金属服务器控制台查询,或者通过调用查询裸金属服务器列表(OpenStack原生)获取。
  • URI GET /v1/{project_id}/baremetalservers/{server_id}/os-server-password 参数说明请参见表1。 表1 参数说明 参数 是否必选 描述 project_id 是 项目ID。 获取方式请参见获取项目ID。 server_id 是 裸金属服务器ID。 可以从裸金属服务器控制台查询,或者通过调用查询裸金属服务器列表(OpenStack原生)获取。
  • 请求示例 更新ID为95bf2490-5428-432c-ad9b-5e3406f869dd的裸金属服务器的元数据,其中自定义metadata键值对为key和value。 1 POST https://{ECS Endpoint}/v2.1/c685484a8cc2416b97260938705deb65/servers/95bf2490-5428-432c-ad9b-5e3406f869dd/metadata 1 2 3 4 5 { "metadata": { "key": "value" } }
  • 约束 裸金属服务器状态为“关机”时支持用户盘的卸载且没有操作系统的限制。当裸金属服务器状态为“运行中”时卸载磁盘有如下约束: 对于Linux裸金属服务器,由于操作系统限制,需要客户先登录裸金属服务器,执行unmount命令,取消待卸载磁盘与文件系统之间的关联,并确保没有程序正在对该磁盘进行读写操作。否则,卸载磁盘将失败。 对于Windows裸金属服务器,在线卸载磁盘,请确保没有程序正在对该磁盘进行读写操作。否则,将造成数据丢失。
  • URI DELETE /v1/{project_id}/baremetalservers/{server_id}/detachvolume/{attachment_id} 参数说明请参见表1。 表1 参数说明 参数 是否必选 描述 project_id 是 项目ID。 获取方式请参见获取项目ID。 server_id 是 裸金属服务器ID。 可以从裸金属服务器控制台查询,或者通过调用查询裸金属服务器列表(OpenStack原生)获取。 attachment_id 是 裸金属服务器的云硬盘ID。 可以通过查询裸金属服务器挂载的云硬盘信息API获取其挂载的云硬盘ID列表。
共100000条