华为云服务器切换弹性云服务器操作系统(安装Cloud-init)_云淘科技
功能介绍
切换弹性云服务器操作系统。支持弹性云服务器数据盘不变的情况下,使用新镜像重装系统盘。
本接口为异步接口,当前切换弹性云服务器操作系统请求下发成功后会返回job_id,此时切换弹性云服务器操作系统并没有立即完成,需要通过调用查询任务的执行状态查询job状态,当Job状态为 SUCCESS 时代表云服务器操作系统切换成功。
调用该接口后,系统将卸载系统盘,然后使用新镜像重新创建系统盘,并挂载至弹性云服务器,实现切换操作系统功能。
接口约束
该接口仅支持安装了Cloud-init或Cloudbase-init的镜像。如果镜像未安装Cloud-init或者Cloudbase-init,请使用 切换弹性云服务器操作系统(未安装Cloud-init)接口。
不包含系统盘的弹性云服务器不能切换操作系统。
执行切换操作系统任务时,请勿并行执行其他任务,否则可能会引起切换操作系统失败。
调试
您可以在API Explorer中调试该接口。
URI
POST /v2/{project_id}/cloudservers/{server_id}/changeos
参数说明请参见表1。
参数 |
是否必选 |
描述 |
---|---|---|
project_id |
是 |
项目ID。 获取方法请参见获取项目ID。 |
server_id |
是 |
弹性云服务器ID。 |
请求消息
请求参数如表2所示。
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
os-change |
是 |
Object |
切换弹性云服务器操作系统,详情参见表3。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
adminpass |
否 |
String |
云服务器管理员帐户的初始登录密码。 其中,Windows管理员帐户的用户名为Administrator,Linux管理员账户的用户名为root。 建议密码复杂度如下: 长度为8-26位。 说明: Windows云服务器的密码,不能包含用户名或用户名的逆序,不能包含用户名中超过两个连续字符的部分。 Windows操作系统不支持使用私有镜像密码。 如需在切换后设置密码,需确保镜像__os_feature_list字段必须含有{“onekey_resetpasswd”: “true”},请在切换后重置云服务器密码。 对于已安装Cloud-init的云服务器,使用adminpass字段切换操作系统时,系统如果提示您使用keypair方式切换操作系统,表示当前区域暂不支持使用密码方式。 |
keyname |
否 |
String |
密钥名称。 密钥可以通过密钥创建接口进行创建 创建和导入SSH密钥(请参见),或使用SSH密钥查询接口查询已有的密钥(请参见查询SSH密钥列表 )。 |
userid |
否 |
String |
用户ID。当传入keyname参数时,优先使用本参数设置的userid,若userid为空,默认使用当前token中的userid。 查看用户ID方法: 登录管理控制台。 |
imageid |
是 |
String |
切换系统所使用的新镜像的ID,格式为UUID。 镜像的ID可以从控制台或者参考《镜像服务API参考》的“查询镜像列表”的章节获取。 |
metadata |
否 |
Object |
切换云服务器的元数据。 更多信息,请参见表4。 |
mode |
否 |
String |
取值为withStopServer ,支持开机状态下切换弹性云服务器操作系统。 mode取值为withStopServer时,对开机状态的弹性云服务器执行切换操作系统操作,系统自动对云服务器先执行关机,再切换操作系统。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
user_data |
否 |
String |
创建云服务器过程中待注入实例自定义数据。支持注入文本、文本文件。 说明: user_data的值为base64编码之后的内容。 了解更多实例自定义数据注入请参考用户数据注入。 示例: base64编码前: Linux服务器: #!/bin/bash echo user_test > /home/user.txt Windows服务器: rem cmd echo 111 > c:\aaa.txt base64编码后: Linux服务器: IyEvYmluL2Jhc2gKZWNobyB1c2VyX3Rlc3QgPiAvaG9tZS91c2VyLnR4dA== Windows服务器: cmVtIGNtZAplY2hvIDExMSA+IGM6XGFhYS50eHQ= |
__system__encrypted |
否 |
String |
metadata中的表示加密功能的字段,0代表不加密,1代表加密。 该字段不存在时,系统盘默认为不加密。 |
__system__cmkid |
否 |
String |
用户主密钥ID,是metadata中的表示加密功能的字段,与__system__encrypted配合使用。 说明: 请参考查询密钥列表,通过HTTPS请求获取密钥ID。 |
响应消息
请参考响应(任务类)。
请求示例
切换云服务器操作系统,切换后采用密码方式登录鉴权。
POST https://{endpoint}/v2/{project_id}/cloudservers/{server_id}/changeos { "os-change": { "adminpass": "1qazXSW@", "userid": "7e25b1da389f4697a79df3a0e5bd494e", "imageid": "e215580f-73ad-429d-b6f2-5433947433b0", "mode": "withStopServer" } }
切换云服务器操作系统,切换后采用密钥方式登录鉴权。
POST https://{endpoint}/v2/{project_id}/cloudservers/{server_id}/changeos { "os-change": { "keyname": "KeyPair-350b", "userid": "7e25b1da389f4697a79df3a0e5bd494e", "imageid": "e215580f-73ad-429d-b6f2-5433947433b0" } }
使用系统盘加密的整机镜像切换云服务器的操作系统,切换后使用密码方式登录鉴权。
POST https://{endpoint}/v2/{project_id}/cloudservers/{server_id}/changeos { "os-change": { "adminpass": "1qazXSW@", "userid": "7e25b1da389f4697a79df3a0e5bd494e", "imageid": "e215580f-73ad-429d-b6f2-5433947433b0", "metadata": { "__system__encrypted": "1", "__system__cmkid": "83cdb52d-9ebf-4469-9cfa-e7b5b80da846" } } }
响应示例
请参考响应(任务类)。
{ "job_id": "ff80808288d41e1b018990260955686a" }
返回值
请参考通用请求返回值。
错误码
请参考错误码。
父主题: 状态管理
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家