云服务器内容精选

  • 响应示例 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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 { "server": { "id": "53206ed0-56de-4d6b-b7ee-ffc62ca26f43", "name": "bms-test", "addresses": { "5849fdf1-9d79-4589-80c2-fe557990c417": [ { "version": "4", "addr": "192.168.1.216", "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:25:56:c3", "OS-EXT-IPS:port_id": "9e62503b-094e-4c6e-bc95-f10bbfb455d5", "OS-EXT-IPS:type": "fixed" }, { "version": "4", "addr": "10.154.72.77", "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:25:56:c3", "OS-EXT-IPS:port_id": "9e62503b-094e-4c6e-bc95-f10bbfb455d5", "OS-EXT-IPS:type": "floating" } ] }, "flavor": { "disk": "9309", "vcpus": "32", "ram": "193047", "id": "physical.o2.medium", "name": "physical.o2.medium", "gpus": [{ "name":"Nvidia Tesla V100S 32GB", "count":8, "memory_mb":32768 }], "asic_accelerators": [] }, "accessIPv4": "", "accessIPv6": "", "status": "ACTIVE", "progress": 0, "hostId": "cd243addb5d2c64e89218180b7a3ed95abe6882e81c337cc563137df", "updated": "2018-09-18T09:29:44Z", "created": "2018-09-18T02:43:26Z", "metadata": { "metering.order_id": " CS 1809181040HCFC2", "metering.image_id": "8589958c-6bc7-40c6-b81b-3fe4cd2e3d85", "baremetalPortIDList": "[9e62503b-094e-4c6e-bc95-f10bbfb455d5]", "metering.resourcespeccode": "physical.o2.medium.linux", "image_name": "redhat_7_2", "op_svc_userid": "745973c535ec4d4caba86f6f9419ff6d", "metering.resourcetype": "__type_baremetal", "metering.product_id": "00301-74069-0--0", "os_bit": "64", "vpc_id": "5849fdf1-9d79-4589-80c2-fe557990c417", "os_type": "Linux", "chargingMode": "1" }, "tags": [ "__type_baremetal" ], "description": "bms-6e18", "locked": false, "image": { "id": "8589958c-6bc7-40c6-b81b-3fe4cd2e3d85" }, "config_drive": "", "tenant_id": "bbf1946d374b44a0a2a95533562ba954", "user_id": "3fc5ab2b0c544979abcaafd86edd80e6", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:host": "bms.dc1", "OS-EXT-SRV-ATTR:instance_name": "instance-00154f94", "OS-EXT-SRV-ATTR:hypervisor_hostname": "nova002@2", "OS-DCF:diskConfig": "MANUAL", "OS-EXT-AZ:availability_zone": "az-dc-1", "os:scheduler_hints": { }, "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", "OS-EXT-SRV-ATTR:ramdisk_id": "", "enterprise_project_id": "2c7b6d77-9013-4d74-a221-2f612fc56372", "OS-EXT-SRV-ATTR:user_data": "$USER_DATA", "OS-SRV-USG:launched_at": "2018-09-18T02:46:07.954587", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:launch_index": 0, "host_status": "UP", "OS-EXT-SRV-ATTR:reservation_id": "r-08tuyo8v", "OS-EXT-SRV-ATTR:hostname": "bms-6e18", "sys_tags": [ { "key": "_sys_enterprise_project_id", "value": "2c7b6d77-9013-4d74-a221-2f612fc56372" } ] } }
  • 请求示例 批量删除标签,标签键值对为key1和value1,key2和value3。 { "action": "delete", "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value3" } ] }
  • 注意事项 该接口可以使用合作伙伴自身的AK/SK或者Token调用,也可以用合作伙伴子客户的AK/SK或者Token来调用。 如果使用AK/SK认证方式,示例代码中的region请参考地区和终端节点中“裸金属服务器 BMS”下“区域”的内容,serviceName(英文服务名称缩写)请指定为BMS。 Endpoint请参考地区和终端节点中“裸金属服务器 BMS”下“终端节点(Endpoint)”的内容。 请保证账户余额充足,此接口无法使用优惠券支付,若余额不足会报“BMS.0216”错误码。若想使用优惠券,请将request请求中的isAutoPay字段设置为false,然后在华为云官网页面使用优惠券进行支付或者调用“查询订单可用优惠券”和“支付包周期产品订单”接口进行支付。
  • 请求示例 创建一个裸金属服务器,镜像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" } }
  • 背景信息(设置登录鉴权方式) 裸金属服务器的登录鉴权方式包括两种:密钥对、密码。为安全起见,推荐使用密钥对方式。 密钥对 指使用密钥对作为裸金属服务器的鉴权方式。 接口调用方法:使用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,私有镜像需要您自行确认是否安装。
  • 请求示例 批量添加标签,标签键值对为key1和value1,key2和value3。 { "action": "create", "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value3" } ] }
  • 响应示例 { "servers": [ { "tenant_id": "ce5c827cf74a45e381a2ceba3511xxxx", "availability_zone": "cn-north-1a", "created": "2025-05-08T02:58:16Z", "task_state": "null", "vm_state": " active ", "flavor": { "disk": 0, "asic_accelerators": [ ], "gpus": [ ], "name": "xxx", "id": "xxx", "vcpus": 24, "ram": 49152 }, "user_id": "521ac9375b8e4661ad8409c0311xxxxx", "in_recycle_bin": false, "name": "bms-caae", "id": "7ef189e7-7795-47e7-9116-47bd50exxxxx", "updated": "2025-05-08T02:58:24Z", "spod_id": null, "status": "ACTIVE" } ], "request_id": "4c3af687-0ef8-47bd-8e80-addabc881xxxx" }
  • 响应参数 参数 参数类型 描述 servers 列表数据结构 裸金属服务器详情列表,具体参照表3接口。 查询级别不同,返回的详情不同。 表3 server字段数据结构说明 参数 参数类型 描述 id String 裸金属服务器ID,格式为UUID。 user_id String 创建裸金属服务器的用户ID,格式为UUID。 name String 裸金属服务器名称。 created String 裸金属服务器创建时间。 时间戳格式为ISO 8601:YYYY-MM-DDTHH:MM:SSZ,例如:2019-05-22T03:30:52Z updated String 裸金属服务器更新时间。 时间戳格式为ISO 8601:YYYY-MM-DDTHH:MM:SSZ,例如:2019-05-22T04:30:52Z tenant_id String 裸金属服务器所属租户ID,格式为UUID。 该参数和project_id表示相同的概念。 flavor Object 裸金属服务器规格信息。详情请参见表4。 status String 裸金属服务器当前状态信息。 取值范围: ACTIVE:运行中/正在关机/删除中 BUILD:创建中 ERROR:故障 HARD_REBOOT:强制重启中 REBOOT:重启中 SHUTOFF:关机 task_state String 裸金属服务器当前的任务状态。 取值范围: rebooting:重启中 reboot_started:普通重启 reboot_started_hard:强制重启 powering-off:关机中 powering-on:开机中 rebuilding:重建中 scheduling:调度中 deleting:删除中 vm_state String 裸金属服务器的稳定状态。 取值范围: active:运行中 shutoff:关机 reboot:重启 availability_zone String 裸金属服务器所在可用区名称。 fault Object 裸金属服务器故障原因。详情请参见表5。 in_recycle_bin Boolean 裸金属服务器是否处于回收站中。 表4 flavor数据结构说明 参数 参数类型 描述 id String 裸金属服务器规格ID。 name String 裸金属服务器规格名称。 disk Integer 该裸金属服务器规格对应要求系统盘大小,0为不限制。 vcpus Integer 该裸金属服务器规格对应的CPU核数。 ram Integer 该裸金属服务器规格对应的内存大小,单位为MB。 gpus Array of objects 该裸金属服务器规格对应的GPU卡信息。详情请参见表6。 asic_accelerators Array of objects 该裸金属服务器规格对应的ASIC加速卡信息。详情请参见表7。 表5 fault数据结构说明 参数 参数类型 描述 message String 故障信息。 code Integer 故障代码。 details String 故障详情。 created String 故障时间,ISO 8601格式。 表6 gpus数据结构说明 参数 参数类型 描述 name String GPU卡名称。 count Integer GPU卡数量。 memory_mb Integer GPU卡显存大小(单位:MB)。 表7 asic_accelerators数据结构说明 参数 参数类型 描述 name String ASIC加速卡名称。 count Integer ASIC加速卡数量。 memory_mb Integer ASIC加速卡显存大小(单位:MB)。
  • URI GET /v1.1/{project_id}/baremetalservers/detail 参数说明请参见表1。 表1 参数说明 参数 是否必选 描述 project_id 是 项目ID。 获取方式请参见获取项目ID。 表2 查询参数 参数 是否必选 参数类型 描述 flavor 否 String 裸金属服务器规格ID。 name 否 String 裸金属服务器名称。 status 否 String 裸金属服务器状态。 取值范围: ACTIVE:运行中/正在关机/删除中 BUILD:创建中 ERROR:故障 HARD_REBOOT:强制重启中 REBOOT:重启中 SHUTOFF:关机 limit 否 Integer 每页返回裸金属服务器的条数,默认值是25,最大值为1000。 offset 否 Integer 此接口为分页查询接口: 不传offset参数,返回结果是符合条件的裸金属服务器总条数,servers列表为空。 传offset参数,offset为查询页码,起始页码为1,每页查询的条数为limit值。 detail 否 String 查询裸金属服务器结果的详细级别,级别越高,查询到的裸金属服务器信息越多。 可使用的级别为1,2,3,4,5。默认级别为4。
  • 授权项说明 在BMS服务中,OpenStack原生API授权项和授权项作用域与弹性云服务器的一致,具体请参考《弹性云服务器API参考》“API授权项列表”章节。 在 IAM 中自定义BMS的用户策略时,需要给BMS的用户策略中加入ecs:*:get和ecs:*:list两个权限,否则可能会因为权限不足导致部分云服务页面使用异常。 高速网络和自定义网络当前不支持企业项目,请用主账号使用这两个功能。 企业项目的子账号需要在IAM中给子账号授予vpc:ports:get权限,否则在裸金属服务器详情中弹性公网IP和安全组会显示异常。
  • 支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝某项操作。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 “√”表示支持,“x”表示暂不支持。 BMS服务支持的自定义策略授权项如下所示: 生命周期管理:包含裸金属服务器所有生命周期接口对应的授权项,例如:创建裸金属服务器、查询裸金属服务器详情等接口。 状态管理:包含裸金属服务器状态管理接口对应的授权项,例如:批量关闭、批量重启、批量启动裸金属服务器等。 密码管理:包含裸金属服务器密码相关接口对应的授权项,例如:查询裸金属服务器是否支持重置密码、重置裸金属服务器密码等接口。 规格查询:包含裸金属服务器规格相关接口对应的授权项,例如:查询裸金属服务器规格详情和扩展信息列表接口。 网卡管理:包含裸金属服务器网卡相关接口对应的授权项,例如:查询裸金属服务器网卡信息接口。 磁盘管理:包含裸金属服务器磁盘相关接口对应的授权项,例如:向指定裸金属服务器挂载磁盘、卸载指定裸金属服务器的磁盘等接口。 元数据管理:包含裸金属服务器元数据相关接口对应的授权项,例如:更新裸金属服务器元数据接口。 租户配额管理:包含租户配额相关接口对应的授权项,例如:查询租户配额接口。
  • 请求示例 重装操作系统,裸金属服务器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" } } }
  • 约束 使用私有镜像创建的裸金属服务器,请确保已经安装了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编码方式编码。 __system__encrypted 否 String metadata中表示加密功能的字段,0代表不加密,1代表加密。 该字段不存在时,系统盘默认为不加密。 该字段值为0时,__system__cmkid不生效。 __system__cmkid 否 String 用户主密钥ID,是metadata中表示加密功能的字段,与__system__encrypted配合使用。 说明: 请参考查询密钥列表,通过HTTPS请求获取密钥ID。
  • 请求示例 1 POST https://{BMS Endpoint}/v1/bbf1946d374b44a0a2a95533562ba954/baremetalservers/cf2a8b97-b5c6-47ef-9714-eb27adf26e5b/changeos 1 2 3 4 5 6 7 8 9 10 { "os-change": { "keyname": "$key_name", "imageid": "04dc740a-5820-4ab6-9d01-8cd3a6577296", "userid": "7e25b1da389f4697a79df3a0e5bd494e", "metadata": { "user_data": "$USER_DATA" } } }