云助手概述
云助手是專為云服務(wù)器ECS打造的原生自動化運(yùn)維工具,免密碼、免登錄、無需使用跳板機(jī),即可批量執(zhí)行命令(Shell、PowerShell、Bat等),實(shí)現(xiàn)自動化運(yùn)維腳本、輪詢進(jìn)程、安裝卸載軟件、啟動或停止服務(wù)、安裝補(bǔ)丁或安裝安全更新等任務(wù)。
功能特性
在實(shí)例處于運(yùn)行中(Running
)狀態(tài),并安裝云助手Agent后,您可以通過ECS管理控制臺或者API,使用云助手對該實(shí)例進(jìn)行下列操作。
批量運(yùn)維
同一腳本命令可在多臺安裝了云助手Agent的實(shí)例上執(zhí)行,實(shí)例間互不影響。
上傳文件
可以將本地的文件(例如配置文件、腳本等),通過云助手上傳到ECS實(shí)例。
公共命令
公共命令包含一些比較復(fù)雜的服務(wù)器配置、健康或安全檢測、應(yīng)用安裝、文件處理、系統(tǒng)補(bǔ)丁安裝、更改系統(tǒng)配置、服務(wù)或應(yīng)用管理的腳本,以及云助手插件(包含腳本或可執(zhí)行程序)。使用公共命令,可以快速地完成某些復(fù)雜配置,很大程度提升您的操作和運(yùn)維效率。
簡單易用
您可以使用自定義參數(shù)/內(nèi)置參數(shù)實(shí)現(xiàn)命令的簡單靈活配置,實(shí)現(xiàn)一份云助手命令在多種場景中使用。
安全可控
云助手不會主動發(fā)起任何操作,所有操作都在您的可控范圍內(nèi)。
應(yīng)用場景
云助手可幫您完成部署與運(yùn)維任務(wù),包括但不限于:
上傳并運(yùn)行自動化運(yùn)維腳本
運(yùn)行實(shí)例上已有的腳本
管理軟件生命周期
部署代碼或者應(yīng)用
輪詢進(jìn)程
安裝補(bǔ)丁或安裝安全更新
從對象存儲OSS或者YUM源獲取更新
修改主機(jī)名或用戶登錄密碼
計(jì)費(fèi)說明
云助手服務(wù)本身不收費(fèi)。
但是使用云助手在部署與運(yùn)維云資源過程中可能會產(chǎn)生費(fèi)用。ECS資源計(jì)費(fèi)詳情,請參見計(jì)費(fèi)概述。
使用限制
只能通過控制臺方式調(diào)用Python或Perl腳本。
說明請確保目標(biāo)實(shí)例具備正確的運(yùn)行環(huán)境,例如執(zhí)行Python命令時,需確保ECS實(shí)例已安裝Python環(huán)境。
創(chuàng)建的Bat、PowerShell或者Shell腳本和自定義參數(shù)在Base64編碼后,使用場景與文件大小說明如下:
創(chuàng)建命令:綜合大小不能超過18 KB。
立即執(zhí)行并保存命令:綜合大小不能超過18 KB。
立即執(zhí)行但不保存命令:綜合大小不能超過24 KB。
上傳文件:文件大小不能超過32 KB。
一條命令中,自定義參數(shù)的個數(shù)不能超過20個。
您只能在以下操作系統(tǒng)中運(yùn)行云助手命令:
Alibaba Cloud Linux
CentOS 6/7/8及更高版本
CoreOS
Debian 8/9/10及更高版本
OpenSUSE
Rocky Linux
RedHat 5/6/7及更高版本
RedHat中需要您自行下載rpm包安裝云助手Agent,具體操作,請參見安裝云助手Agent。
SUSE Linux Enterprise Server 11/12/15及更高版本
Ubuntu 12/14/16/18及更高版本
Window Server 2012/2016/2019及更高版本
更多有關(guān)云助手的使用限制及配額,請參見云助手使用限制。
資源占用
云助手Agent所在主機(jī)的各項(xiàng)資源占用情況如下:
主機(jī)資源 | Linux操作系統(tǒng) | Windows操作系統(tǒng) |
CPU | 平均CPU使用率不到1% | |
物理內(nèi)存 | 約17 MB | 約10 MB |
磁盤I/O | 平穩(wěn)運(yùn)行時幾乎沒有I/O,僅在下載升級安裝包和保存命令腳本等場景下產(chǎn)生磁盤I/O | |
網(wǎng)絡(luò)I/O | 平穩(wěn)運(yùn)行時僅有心跳上報等數(shù)據(jù)產(chǎn)生的少量I/O |
名詞解釋
云助手的常用名詞及其具體描述如下表所示。
常見名詞 | 說明 |
云助手 | 云助手官方名稱,可以幫您在ECS實(shí)例以及彈性裸金屬服務(wù)器實(shí)例上自動以及批量執(zhí)行日常維護(hù)任務(wù)。所有阿里云地域均支持云助手服務(wù)。 |
云助手Agent | 安裝在ECS實(shí)例中的輕量級插件,所有在實(shí)例中完成的命令都會通過云助手Agent完成。
|
云助手守護(hù)進(jìn)程 | 用于監(jiān)控云助手Agent的資源消耗情況,上報云助手Agent的運(yùn)行狀態(tài),以及當(dāng)云助手Agent崩潰時重啟云助手Agent。
說明 目前云助手守護(hù)進(jìn)程僅支持Linux操作系統(tǒng)。 |
任務(wù)執(zhí)行路徑 | 云助手會將用戶的命令內(nèi)容以文件形式先保存到實(shí)例上,然后再執(zhí)行文件,具體保存路徑如下:
|
命令 | 需要在實(shí)例中執(zhí)行的具體命令操作,如一份Shell腳本或者PowerShell腳本。 |
自定義參數(shù) | 您在命令中設(shè)置的變量值,以{{key}}的形式表示,可以在執(zhí)行命令時以{{"key":"value"}}的形式設(shè)置自定義參數(shù)的值。由于您在一個地域下能保有的云助手命令有配額限制,建議您通過設(shè)置自定義參數(shù)提高命令的靈活性以及多場景適用性。您也可以指定內(nèi)置環(huán)境參數(shù)作為自定義參數(shù),執(zhí)行命令時無需手動對參數(shù)賦值,云助手將為您自動替換為環(huán)境中對應(yīng)的值。 |
單次執(zhí)行 | 在一臺或者多臺實(shí)例中執(zhí)行某個命令,即為一次執(zhí)行( |
定時執(zhí)行 | 在一臺或者多臺實(shí)例中執(zhí)行某個命令時,您可以指定執(zhí)行時序或周期,定時執(zhí)行命令進(jìn)程。 |
命令執(zhí)行狀態(tài)
單條命令執(zhí)行狀態(tài)
在一臺實(shí)例上運(yùn)行一條命令時,實(shí)例級別的狀態(tài)如下表所示,對應(yīng)DescribeInvocations中InvokeInstance
下的InvocationStatus
字段,或DescribeInvocationResults中的InvocationStatus
字段。
API狀態(tài) | 狀態(tài)顯示 | 描述 |
| 下發(fā)中 | 系統(tǒng)正在校驗(yàn)或發(fā)送命令。 |
| 校驗(yàn)不通過 | 指定命令類型或參數(shù)有誤。 |
| 下發(fā)失敗 | 向?qū)嵗l(fā)送命令失敗。實(shí)例必須在運(yùn)行中,且命令可以1分鐘內(nèi)發(fā)送完成。 |
| 執(zhí)行中 | 命令正在被執(zhí)行。 |
| 執(zhí)行成功 |
|
| 執(zhí)行完成,退出碼非0 |
|
| 執(zhí)行異常 | 命令執(zhí)行時發(fā)生異常無法繼續(xù)。 |
| 執(zhí)行超時 | 命令執(zhí)行超時。 |
| 執(zhí)行取消 | 命令的執(zhí)行動作已經(jīng)取消,命令未曾啟動。 |
| 停止執(zhí)行中 | 命令正在被停止執(zhí)行。 |
| 已停止執(zhí)行 | 命令已經(jīng)被停止。 |
| 執(zhí)行已終止 | 命令運(yùn)行時被終止。 |
| 命令等待運(yùn)行 | 定時執(zhí)行的命令等待運(yùn)行。 |
批量命令執(zhí)行狀態(tài)
為便于管理批量執(zhí)行或者定時執(zhí)行,您可以從總執(zhí)行狀態(tài)、實(shí)例級別執(zhí)行狀態(tài)以及執(zhí)行記錄級別的狀態(tài)概念出發(fā)管理命令運(yùn)行的生命周期,對應(yīng)DescribeInvocations中Invocation
下的InvocationStatus
字段。狀態(tài)各級別之間的包含關(guān)系如下圖所示。
在多臺實(shí)例上運(yùn)行一條命令,總執(zhí)行狀態(tài)說明如下表所示。
API狀態(tài) | 狀態(tài)顯示 | 描述 |
| 系統(tǒng)正在校驗(yàn)或發(fā)送命令 | 存在至少一臺實(shí)例的命令執(zhí)行狀態(tài)為 |
| 定時執(zhí)行的命令已發(fā)送,等待運(yùn)行 | 存在至少一臺實(shí)例的命令執(zhí)行狀態(tài)為 |
| 命令正在實(shí)例上運(yùn)行 | 存在至少一臺實(shí)例的命令執(zhí)行狀態(tài)為 |
| 命令執(zhí)行成功 | 各個實(shí)例上的命令執(zhí)行狀態(tài)均為
|
| 命令執(zhí)行失敗 | 各個實(shí)例上的命令執(zhí)行狀態(tài)均為
|
| 正在停止任務(wù) | 存在至少一臺實(shí)例的命令執(zhí)行狀態(tài)為 |
| 任務(wù)已停止 | 所有實(shí)例的命令執(zhí)行狀態(tài)是
|
| 部分實(shí)例執(zhí)行成功且部分實(shí)例執(zhí)行失敗 | 各個實(shí)例的命令執(zhí)行狀態(tài)均為 |
使用云助手
您可以通過ECS控制臺或者調(diào)用API使用云助手。
業(yè)務(wù)場景 | 參考文檔 | 相關(guān)API |
ECS實(shí)例中需要安裝云助手Agent后才能使用云助手,2017年12月01日之后使用公共鏡像創(chuàng)建的ECS實(shí)例,默認(rèn)預(yù)裝云助手Agent。因此,部分ECS實(shí)例需要您自行安裝云助手Agent。 | ||
首次接觸云助手,并習(xí)慣使用API調(diào)用工具。 | 不涉及 | |
新建一份云助手命令。 | ||
對目標(biāo)ECS實(shí)例執(zhí)行已創(chuàng)建的命令。 | ||
查看命令的執(zhí)行狀態(tài),查看命令的執(zhí)行結(jié)果,即在指定ECS實(shí)例中的實(shí)際輸出信息。 | ||
修改已創(chuàng)建的命令,支持修改命令名稱和描述。 | 不涉及 | |
為一份云助手命令新增版本。或者您希望修改命令的名稱、描述、類型、內(nèi)容、執(zhí)行路徑或者超時時間等更多屬性。 | 不涉及 | |
停止正在進(jìn)行的命令進(jìn)程。 | ||
刪除不再需要的云助手命令,避免命令達(dá)到配額上限時影響新建命令。 |