雲助手是專為Elastic Compute Service打造的原生自動化營運工具,免密碼、免登入、無需使用跳板機,即可批量執行命令(Shell、PowerShell、Bat等),實現自動化營運指令碼、輪詢進程、安裝卸載軟體、啟動或停止服務、安裝補丁或安裝安全更新等任務。
功能特性
在執行個體處於運行中(Running
)狀態,並安裝雲助手Agent後,您可以通過ECS管理主控台或者API,使用雲助手對該執行個體進行下列操作。
批量營運
同一指令碼命令可在多台安裝了雲助手Agent的執行個體上執行,執行個體間互不影響。
上傳檔案
可以將本地的檔案(例如設定檔、指令碼等),通過雲助手上傳到ECS執行個體。
公用命令
公用命令包含一些比較複雜的伺服器配置、健康或安全檢測、應用安裝、檔案處理、系統補丁安裝、更改系統配置、服務或應用管理的指令碼,以及雲助手外掛程式(包含指令碼或可執行程式)。使用公用命令,可以快速地完成某些複雜配置,很大程度提升您的操作和營運效率。
簡單易用
您可以使用自訂參數/內建參數實現命令的簡單靈活配置,實現一份雲助手命令在多種情境中使用。
安全可控
雲助手不會主動發起任何操作,所有操作都在您的可控範圍內。
應用情境
雲助手可幫您完成部署與營運任務,包括但不限於:
上傳並運行自動化營運指令碼
運行執行個體上已有的指令碼
管理軟體生命週期
部署代碼或者應用
輪詢進程
安裝補丁或安裝安全更新
從Object Storage Service或者YUM源擷取更新
修改主機名稱或使用者登入密碼
計費說明
雲助手服務本身不收費。
但是使用雲助手在部署與營運雲資源過程中可能會產生費用。ECS資源計費詳情,請參見計費概述。
使用限制
只能通過控制台方式調用Python或Perl指令碼。
說明請確保目標執行個體具備正確的運行環境,例如執行Python命令時,需確保ECS執行個體已安裝Python環境。
建立的Bat、PowerShell或者Shell指令碼和自訂參數在Base64編碼後,使用情境與檔案大小說明如下:
建立命令:綜合大小不能超過18 KB。
立即執行並儲存命令:綜合大小不能超過18 KB。
立即執行但不儲存命令:綜合大小不能超過24 KB。
上傳檔案:檔案大小不能超過32 KB。
一條命令中,自訂參數的個數不能超過20個。
您只能在以下作業系統中運行雲助手命令:
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及更高版本
更多有關雲助手的使用限制及配額,請參見雲助手使用限制。
資源佔用
雲助手Agent所在主機的各項資源佔用情況如下:
主機資源 | Linux作業系統 | Windows作業系統 |
CPU | 平均CPU使用率不到1% | |
實體記憶體 | 約17 MB | 約10 MB |
磁碟I/O | 平穩運行時幾乎沒有I/O,僅在下載升級安裝包和儲存命令指令碼等情境下產生磁碟I/O | |
網路I/O | 平穩運行時僅有心跳上報等資料產生的少量I/O |
名詞解釋
雲助手的常用名詞及其具體描述如下表所示。
常見名詞 | 說明 |
雲助手 | 雲助手官方名稱,可以幫您在ECS執行個體以及ECS Bare Metal Instance執行個體上自動以及批量執行日常維護任務。所有阿里雲地區均支援雲助手服務。 |
雲助手Agent | 安裝在ECS執行個體中的輕量級外掛程式,所有在執行個體中完成的命令都會通過雲助手Agent完成。
|
雲助手守護進程 | 用於監控雲助手Agent的資源消耗情況,上報雲助手Agent的運行狀態,以及當雲助手Agent崩潰時重啟雲助手Agent。
說明 目前雲助手守護進程僅支援Linux作業系統。 |
任務執行路徑 | 雲助手會將使用者的命令內容以檔案形式先儲存到執行個體上,然後再執行檔案,具體儲存路徑如下:
|
命令 | 需要在執行個體中執行的具體命令操作,如一份Shell指令碼或者PowerShell指令碼。 |
自訂參數 | 您在命令中設定的變數值,以{{key}}的形式表示,可以在執行命令時以{{"key":"value"}}的形式設定自訂參數的值。由於您在一個地區下能保有的雲助手命令有配額限制,建議您通過設定自訂參數提高命令的靈活性以及多情境適用性。您也可以指定內建環境參數作為自訂參數,執行命令時無需手動對參數賦值,雲助手將為您自動替換為環境中對應的值。 |
單次執行 | 在一台或者多台執行個體中執行某個命令,即為一次執行( |
定時執行 | 在一台或者多台執行個體中執行某個命令時,您可以指定執行時序或周期,定時執行命令進程。 |
命令執行狀態
單條命令執行狀態
在一台執行個體上運行一條命令時,執行個體層級的狀態如下表所示,對應DescribeInvocations中InvokeInstance
下的InvocationStatus
欄位,或DescribeInvocationResults中的InvocationStatus
欄位。
API狀態 | 狀態顯示 | 描述 |
| 下發中 | 系統正在校正或發送命令。 |
| 校正不通過 | 指定命令類型或參數有誤。 |
| 下發失敗 | 向執行個體發送命令失敗。執行個體必須在運行中,且命令可以1分鐘內發送完成。 |
| 執行中 | 命令正在被執行。 |
| 執行成功 |
|
| 執行完成,退出碼非0 |
|
| 執行異常 | 命令執行時發生異常無法繼續。 |
| 執行逾時 | 命令執行逾時。 |
| 執行取消 | 命令的執行動作已經取消,命令未曾啟動。 |
| 停止執行中 | 命令正在被停止執行。 |
| 已停止執行 | 命令已經被停止。 |
| 執行已終止 | 命令運行時被終止。 |
| 命令等待運行 | 定時執行的命令等待運行。 |
批量命令執行狀態
為便於管理批量執行或者定時執行,您可以從總執行狀態、執行個體層級執行狀態以及執行記錄層級的狀態概念出發管理命令啟動並執行生命週期,對應DescribeInvocations中Invocation
下的InvocationStatus
欄位。狀態各層級之間的內含項目關聯性如下圖所示。
在多台執行個體上運行一條命令,總執行狀態說明如下表所示。
API狀態 | 狀態顯示 | 描述 |
| 系統正在校正或發送命令 | 存在至少一台執行個體的命令執行狀態為 |
| 定時執行的命令已發送,等待運行 | 存在至少一台執行個體的命令執行狀態為 |
| 命令正在執行個體上運行 | 存在至少一台執行個體的命令執行狀態為 |
| 命令執行成功 | 各個執行個體上的命令執行狀態均為
|
| 命令執行失敗 | 各個執行個體上的命令執行狀態均為
|
| 正在停止任務 | 存在至少一台執行個體的命令執行狀態為 |
| 任務已停止 | 所有執行個體的命令執行狀態是
|
| 部分執行個體執行成功且部分執行個體執行失敗 | 各個執行個體的命令執行狀態均為 |
使用雲助手
您可以通過ECS控制台或者調用API使用雲助手。
業務情境 | 參考文檔 | 相關API |
ECS執行個體中需要安裝雲助手Agent後才能使用雲助手,2017年12月01日之後使用公用鏡像建立的ECS執行個體,預設預裝雲助手Agent。因此,部分ECS執行個體需要您自行安裝雲助手Agent。 | ||
首次接觸雲助手,並習慣使用API調用工具。 | 不涉及 | |
建立一份雲助手命令。 | ||
對目標ECS執行個體執行已建立的命令。 | ||
查看命令的執行狀態,查看命令的執行結果,即在指定ECS執行個體中的實際輸出資訊。 | ||
修改已建立的命令,支援修改命令名稱和描述。 | 不涉及 | |
為一份雲助手命令新增版本。或者您希望修改命令的名稱、描述、類型、內容、執行路徑或者逾時時間等更多屬性。 | 不涉及 | |
停止進行中的命令進程。 | ||
刪除不再需要的雲助手命令,避免命令達到配額上限時影響建立命令。 |