華為云計算 云知識 切換彈性云服務(wù)器操作系統(tǒng)(安裝Cloud init)ChangeServerOsWithCloudInit
切換彈性云服務(wù)器操作系統(tǒng)(安裝Cloud init)ChangeServerOsWithCloudInit

 

功能介紹

切換彈性 云服務(wù)器 操作系統(tǒng)。支持彈性云服務(wù)器數(shù)據(jù)盤不變的情況下,使用新 鏡像 重裝系統(tǒng)盤。

本接口為異步接口,當(dāng)前切換彈性云服務(wù)器操作系統(tǒng)請求下發(fā)成功后會返回job_id,此時切換彈性云服務(wù)器操作系統(tǒng)并沒有立即完成,需要通過調(diào)用查詢?nèi)蝿?wù)的執(zhí)行狀態(tài)查詢job狀態(tài),當(dāng)Job狀態(tài)為 SUC CES S 時代表云服務(wù)器操作系統(tǒng)切換成功。

調(diào)用該接口后,系統(tǒng)將卸載系統(tǒng)盤,然后使用新鏡像重新創(chuàng)建系統(tǒng)盤,并掛載至彈性云服務(wù)器,實現(xiàn)切換操作系統(tǒng)功能。

接口約束

  • 該接口僅支持安裝了Cloud-init或Cloudbase-init的鏡像。如果鏡像未安裝Cloud-init或者Cloudbase-init,請使用 切換彈性云服務(wù)器操作系統(tǒng)(未安裝Cloud-init)接口。
  • 不包含系統(tǒng)盤的彈性云服務(wù)器不能切換操作系統(tǒng)。
  • 執(zhí)行切換操作系統(tǒng)任務(wù)時,請勿并行執(zhí)行其他任務(wù),否則可能會引起切換操作系統(tǒng)失敗。

調(diào)試

您可以在API Explorer中調(diào)試該接口。

URI

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

參數(shù)說明請參見表1。
表1 參數(shù)說明

參數(shù)

是否必選

描述

project_id

項目ID。

獲取方法請參見獲取項目ID

server_id

彈性云服務(wù)器ID。

請求消息

請求參數(shù)如表2所示。
表2 請求參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

os-change

Object

切換彈性云服務(wù)器操作系統(tǒng),詳情參見表3。

表3 os-change字段數(shù)據(jù)結(jié)構(gòu)說明

參數(shù)

是否必選

參數(shù)類型

描述

adminpass

String

云服務(wù)器管理員帳戶的初始登錄密碼。

其中,Windows管理員帳戶的用戶名為Administrator,Linux管理員賬戶的用戶名為root。

建議密碼復(fù)雜度如下:

  • 長度為8-26位。
  • 密碼至少必須包含大寫字母、小寫字母、數(shù)字和特殊字符(!@$%^-_=+[{}]:,./?~#*)中的三種。
說明:
  • Windows云服務(wù)器的密碼,不能包含用戶名或用戶名的逆序,不能包含用戶名中超過兩個連續(xù)字符的部分。
  • 對于Linux彈性云服務(wù)器也可使用user_data字段實現(xiàn)密碼注入,此時adminpass字段無效。
  • adminpass和keyname不能同時有值。
  • adminpass和keyname如果同時為空,此時,linux可使用metadata中的user_data。
  • 僅在使用私有鏡像密碼或切換后設(shè)置密碼的場景,adminpass、keyname和metadata中的user_data屬性值可以同時為空,且有以下約束條件:

    Windows操作系統(tǒng)不支持使用私有鏡像密碼。

    如需在切換后設(shè)置密碼,需確保鏡像__os_feature_list字段必須含有{"onekey_resetpasswd": "true"},請在切換后重置云服務(wù)器密碼。

  • 對于已安裝Cloud-init的云服務(wù)器,使用adminpass字段切換操作系統(tǒng)時,系統(tǒng)如果提示您使用keypair方式切換操作系統(tǒng),表示當(dāng)前區(qū)域暫不支持使用密碼方式。

keyname

String

密鑰名稱。

密鑰可以通過密鑰創(chuàng)建接口進(jìn)行創(chuàng)建(請參見創(chuàng)建和導(dǎo)入SSH密鑰),或使用SSH密鑰查詢接口查詢已有的密鑰(請參見查詢SSH密鑰列表 )。

userid

String

用戶ID。當(dāng)傳入keyname參數(shù)時,優(yōu)先使用本參數(shù)設(shè)置的userid,若userid為空,默認(rèn)使用當(dāng)前token中的userid。

查看用戶ID方法:
  1. 登錄管理控制臺。
  2. 單擊用戶名,在下拉列表中單擊“我的憑證”。在該頁面查看用戶ID。

imageid

String

切換系統(tǒng)所使用的新鏡像的ID,格式為UUID。

鏡像的ID可以從控制臺或者參考 鏡像服務(wù) API參考》的“查詢鏡像列表”的章節(jié)獲取。

metadata

Object

切換云服務(wù)器的元數(shù)據(jù)。

更多信息,請參見表4。

mode

String

取值為withStopServer ,支持開機(jī)狀態(tài)下切換彈性云服務(wù)器操作系統(tǒng)。

mode取值為withStopServer時,對開機(jī)狀態(tài)的彈性云服務(wù)器執(zhí)行切換操作系統(tǒng)操作,系統(tǒng)自動對云服務(wù)器先執(zhí)行關(guān)機(jī),再切換操作系統(tǒng)。

表4 metadata字段數(shù)據(jù)結(jié)構(gòu)說明

參數(shù)

是否必選

參數(shù)類型

描述

user_data

String

創(chuàng)建云服務(wù)器過程中待注入實例自定義數(shù)據(jù)。支持注入文本、文本文件。

說明:
  • user_data的值為base64編碼之后的內(nèi)容。
  • 注入內(nèi)容(編碼之前的內(nèi)容)最大長度為32K。

了解更多實例自定義數(shù)據(jù)注入請參考用戶數(shù)據(jù)注入

示例:

base64編碼前:

  • Linux服務(wù)器:
    #! /bin/bash
    echo user_test >> /home/user.txt
  • Windows服務(wù)器:
    rem cmd
    echo 111 > c:\aaa.txt

base64編碼后:

  • Linux服務(wù)器:
    IyEgL2Jpbi9iYXNoDQplY2hvIHVzZXJfdGVzdCAmZ3Q7Jmd0OyAvaG9tZS91c2VyLnR4dA==
  • Windows服務(wù)器:
    cmVtIGNtZAplY2hvIDExMSA+IGM6XGFhYS50eHQ=

__system__encrypted

String

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

該字段不存在時,系統(tǒng)盤默認(rèn)為不加密。

__system__cmkid

String

用戶主密鑰ID,是metadata中的表示加密功能的字段,與__system__encrypted配合使用。

說明:

請參考查詢密鑰列表,通過HTTPS請求獲取密鑰ID。

響應(yīng)消息

請參考響應(yīng)(任務(wù)類)

請求示例

  • 切換云服務(wù)器操作系統(tǒng),切換后采用密碼方式登錄鑒權(quán)。
    POST https://{endpoint}/v2/{project_id}/cloudservers/{server_id}/changeos
    
    {
        "os-change": {
            "adminpass": "1qazXSW@",
            "userid": "7e25b1da389f4697a79df3a0e5bd494e", 
            "imageid": "e215580f-73ad-429d-b6f2-5433947433b0",
            "mode": "withStopServer"
        }
    }
  • 切換云服務(wù)器操作系統(tǒng),切換后采用密鑰方式登錄鑒權(quán)。
    POST https://{endpoint}/v2/{project_id}/cloudservers/{server_id}/changeos
    
    {
        "os-change": {
            "keyname": "KeyPair-350b", 
            "userid": "7e25b1da389f4697a79df3a0e5bd494e", 
            "imageid": "e215580f-73ad-429d-b6f2-5433947433b0"
        }
    }

響應(yīng)示例

請參考響應(yīng)(任務(wù)類)。

{      
    "job_id": "70a599e0-31e7-49b7-b260-868f441e862b" 
}

返回值

請參考通用請求返回值。

錯誤碼

請參考錯誤碼。