/ 弹性云服务器 ecs/ api参考/ api/ 状态管理/ 切换弹性云服务器操作系统(安装cloud-init)
更新时间:2024-11-14 gmt 08:00

切换弹性云服务器操作系统(安装cloud-九游平台

功能介绍

切换弹性云服务器操作系统。支持弹性云服务器数据盘不变的情况下,使用新镜像重装系统盘。

本接口为异步接口,当前切换弹性云服务器操作系统请求下发成功后会返回job_id,此时切换弹性云服务器操作系统并没有立即完成,需要通过调用查询任务的执行状态查询job状态,当job状态为 success 时代表云服务器操作系统切换成功。

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

接口约束

  • 该接口仅支持安装了cloud-init或cloudbase-init的镜像。如果镜像未安装cloud-init或者cloudbase-init,请使用 切换弹性云服务器操作系统(未安装cloud-init)接口。
  • 不包含系统盘的弹性云服务器不能切换操作系统。
  • 执行切换操作系统任务时,请勿并行执行其他任务,否则可能会引起切换操作系统失败。

调试

您可以在中调试该接口。

uri

post /v2/{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云服务器的密码,不能包含用户名或用户名的逆序,不能包含用户名中超过两个连续字符的部分。
  • 对于linux弹性云服务器也可使用user_data字段实现密码注入,此时adminpass字段无效。
  • adminpass和keyname不能同时有值。
  • adminpass和keyname如果同时为空,此时,linux可使用metadata中的user_data。
  • 仅在使用私有镜像密码或切换后设置密码的场景,adminpass、keyname和metadata中的user_data属性值可以同时为空,且有以下约束条件:

    windows操作系统不支持使用私有镜像密码。

    如需在切换后设置密码,需确保镜像__os_feature_list字段必须含有{"onekey_resetpasswd": "true"},请在切换后重置云服务器密码。

  • 对于已安装cloud-init的云服务器,使用adminpass字段切换操作系统时,系统如果提示您使用keypair方式切换操作系统,表示当前区域暂不支持使用密码方式。

keyname

string

密钥名称。

密钥可以通过密钥创建接口进行创建(请参见),或使用ssh密钥查询接口查询已有的密钥(请参见查询ssh密钥对列表)。

userid

string

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

查看用户id方法:
  1. 登录管理控制台。
  2. 单击用户名,在下拉列表中单击“我的凭证”。在该页面查看iam用户id。

imageid

string

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

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

isautopay

string

下单订购后,是否自动从客户的账户中支付,而不需要客户手动去进行支付。

  • “true”:是(自动支付)
  • “false”:否(需要客户手动支付)
说明:

适用于包年/包月虚拟机费用发生变化时,不传该字段时默认为客户手动支付。

metadata

object

切换云服务器的元数据。

更多信息,请参见表4

mode

string

取值为withstopserver ,支持开机状态下切换弹性云服务器操作系统。

mode取值为withstopserver时,对开机状态的弹性云服务器执行切换操作系统操作,系统自动对云服务器先执行关机,再切换操作系统。

表4 metadata字段数据结构说明

参数

是否必选

参数类型

描述

user_data

string

创建云服务器过程中待注入实例自定义数据。支持注入文本、文本文件。

说明:
  • user_data的值为base64编码之后的内容。
  • 注入内容(编码之前的内容)最大长度为32k。

了解更多实例自定义数据注入请参考用户数据注入

示例:

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": "$admin_pass",
            "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": "$admin_pass",
            "userid": "7e25b1da389f4697a79df3a0e5bd494e", 
            "imageid": "e215580f-73ad-429d-b6f2-5433947433b0", 
            "metadata": {
                  "__system__encrypted": "1",
                  "__system__cmkid": "83cdb52d-9ebf-4469-9cfa-e7b5b80da846"
            }
        }
    }

响应示例

请参考。

{      
    "job_id": "ff80808288d41e1b018990260955686a" 
}

返回值

请参考通用请求返回值

错误码

请参考。

相关文档

网站地图