切换裸金属服务器操作系统
约束
- 关机状态或者切换操作系统失败的裸金属服务器,才能执行切换操作。
- 使用私有镜像创建的裸金属服务器,请确保已经安装了Cloud-init(Linux镜像)或Cloudbase-init(Windows镜像)。如使用未安装Cloud-init或Cloudbase-init的镜像,该接口不能注入密钥或密码。公共镜像默认已安装Cloud-init或Cloudbase-init。
- 执行切换操作系统任务时,请勿并行执行其他操作,否则可能会引起切换操作系统失败。
- 目前Windows镜像不支持注入密码,Linux镜像的user_data为加密后的密码。
调试
您可以在API Explorer中调试该接口。
URI
POST /v1/{project_id}/baremetalservers/{server_id}/changeos
参数 |
是否必选 |
描述 |
---|---|---|
X-Auth-Token |
是 |
用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值) |
project_id |
是 |
项目ID。 获取方式请参见获取项目ID。 |
server_id |
是 |
裸金属服务器ID。 可以从裸金属服务器控制台查询,或者通过调用查询裸金属服务器列表(废弃)获取。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
os-change |
是 |
Object |
标记为切换裸金属服务器OS操作。详情请参见表2。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
adminpass |
否 |
String |
裸金属服务器管理员账号的初始登录密码。 其中,Linux管理员账户为root,Windows管理员账户为Administrator。 建议密码复杂度如下:
说明:
|
keyname |
否 |
String |
密钥名称。 密钥可以通过创建和导入SSH密钥(OpenStack原生)API创建,或者使用查询SSH密钥列表(OpenStack原生)API查询已有的密钥。 |
userid |
否 |
String |
用户ID(登录管理控制台,进入我的凭证,即可看到“用户ID”)。 |
imageid |
是 |
String |
镜像ID。 镜像ID可以从镜像服务控制台获取,或者参考《镜像服务API参考》的“查询镜像列表”章节查询。 在使用“查询镜像列表”API查询时,可以添加过滤字段“?virtual_env_type=Ironic”来筛选裸金属服务器镜像。 |
metadata |
否 |
Object |
切换裸金属服务器的元数据。详情请参见表3。 |
参数 |
是否必选 |
参数类型 |
描述 |
||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
user_data |
否 |
String |
切换裸金属服务器过程中待注入的Linux镜像root密码,用户自定义初始化密码。 注:修改密码脚本需经base64编码。 建议密码复杂度如下:
示例:
其中,$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig为密文密码,生成方法如下:
|
请求示例
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" } } } |
响应参数
- 正常响应要素
名称 |
参数类型 |
说明 |
---|---|---|
jobId |
String |
提交任务成功后返回的任务ID,用户可以使用该ID对任务执行情况进行查询。 如何根据job_id来查询Job的执行状态,请参考查询Job状态。 |
- 异常响应要素
名称 |
参数类型 |
说明 |
---|---|---|
error |
字典数据结构 |
提交任务异常时返回的异常信息,详情请参见表6。 |
响应示例
- 正常响应
{ "jobId": "9288ec8d769dbc9b01769dc8f261002f" }
错误码
请参考错误码。