文档首页> 弹性云服务器 ECS> API参考 (阿布扎比区域)> API(推荐)> 状态管理> 切换弹性云服务器操作系统(未安装Cloud-init)
更新时间:2022-02-22 GMT+08:00

切换弹性云服务器操作系统(未安装Cloud-init)

功能介绍

切换弹性云服务器操作系统。

调用该接口后,系统将卸载系统盘,然后使用新镜像重新创建系统盘,并挂载至弹性云服务器,实现切换操作系统功能。

该接口支持未安装Cloud-init或Cloudbase-init的镜像使用,如果镜像安装了Cloud-init或者Cloudbase-init,请使用 切换弹性云服务器操作系统(安装Cloud-init)接口。

接口约束

  • 关机状态或者重装/切换操作系统失败的弹性云服务器才能执行切换操作。
  • 不包含系统盘的弹性云服务器不能切换操作系统。
  • 执行切换操作系统任务时,请勿并行执行其他任务,否则可能会引起切换操作系统失败。

URI

POST /v1/{project_id}/cloudservers/{server_id}/changeos

参数说明请参见表1
表1 参数说明

参数

是否必选

描述

project_id

项目ID。

获取方法请参见获取项目ID

server_id

弹性云服务器ID。

请求消息

请求参数如表2所示。
表2 请求参数

参数

是否必选

参数类型

描述

os-change

Object

切换弹性云服务器操作系统,详情参见 表3

表3 os-change字段数据结构说明

参数

是否必选

参数类型

描述

adminpass

String

云服务器管理员帐户的初始登录密码。

其中,Windows管理员帐户的用户名为Administrator,Linux管理员账户的用户名为root。

建议密码复杂度如下:

  • 长度为8-26位。
  • 密码至少必须包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{}]:,./?~#*)中的三种。
说明:
  • Windows云服务器仅支持密码方式,且密码不能包含用户名或用户名的逆序,不能包含用户名中超过两个连续字符的部分。
  • adminpass和keyname不能同时为空。
  • adminpass和keyname不能同时有值。

keyname

String

密钥名称。

userid

String

用户ID。当传入keyname参数时,优先使用本参数设置的userid,若userid为空,默认使用当前token中的userid。

imageid

String

切换系统所使用的新镜像的ID,格式为UUID。

镜像的ID可以从控制台或者参考《镜像服务接口参考》的“查询镜像列表”的章节获取。

metadata

Object

切换云服务器的元数据。

更多信息,请参见表4

表4 metadata字段数据结构说明

参数

是否必选

参数类型

描述

__system__encrypted

String

metadata中的表示加密功能的字段,0代表不加密,1代表加密。

该字段不存在时,系统盘默认为不加密。

__system__cmkid

String

用户主密钥ID,是metadata中的表示加密功能的字段,与__system__encrypted配合使用。

说明:

参考《密钥管理服务API参考》中的“查询密钥列表”章节通过HTTPS请求获取密钥ID。

响应消息

请参考响应(任务类)

请求示例

POST https://{endpoint}/v1/{project_id}/cloudservers/{server_id}/changeos
{
    "os-change": {
        "keyname": "KeyPair-350b", 
        "userid": "7e25b1da389f4697a79df3a0e5bd494e", 
        "imageid": "e215580f-73ad-429d-b6f2-5433947433b0",
        "metadata": {
              "__system__encrypted": "1",
              "__system__cmkid": "83cdb52d-9ebf-4469-9cfa-e7b5b80da846"
        },
       "mode": "withStopServer"
    }
}

响应示例

请参考响应(任务类)

返回值

请参考通用请求返回值

错误码

请参考错误码