雲助手是專為Elastic Compute Service打造的原生自動化營運工具,免密碼、免登入、無需使用跳板機,即可批量執行命令(Shell、PowerShell、Bat等),實現自動化營運指令碼、輪詢進程、安裝卸載軟體、啟動或停止服務、安裝補丁或安全更新等任務。
功能特性
批量營運
同一指令碼命令可在多台安裝了雲助手Agent的執行個體上執行,執行個體間互不影響。
上傳檔案
可以將本地的檔案(例如設定檔、指令碼等),通過雲助手上傳到ECS執行個體。
公用命令
公用命令包含一些比較複雜的伺服器配置、健康或安全檢測、應用安裝、檔案處理、系統補丁安裝、更改系統配置、服務或應用管理的指令碼,以及雲助手外掛程式(包含指令碼或可執行程式)。使用公用命令,可以快速地完成某些複雜配置,極大地提升您的操作和營運效率。
簡單易用
您可以使用自訂參數/內建參數實現命令的簡單靈活配置,使一份雲助手命令在多種情境中使用。
安全可控
雲助手不會主動發起任何操作,所有操作都在您的可控範圍內。
應用情境
雲助手可幫您完成部署與營運任務,包括但不限於:
上傳並運行自動化營運指令碼
運行執行個體上已有的指令碼
管理軟體生命週期
部署代碼或者應用
輪詢進程
安裝補丁或安裝安全更新
從Object Storage Service或者YUM源擷取更新
修改主機名稱或使用者登入密碼
使用限制
執行個體處於運行中(
Running)狀態,並安裝了雲助手Agent。建立的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
RedHat 5/6/7及更高版本
說明RedHat中需要您自行下載rpm包安裝雲助手Agent,具體操作,請參見安裝雲助手Agent。
SUSE Linux Enterprise Server 11/12/15及更高版本
Ubuntu 12/14/16/18及更高版本
FreeBSD 11/12/13/14及更高版本
Window Server 2012/2016/2019及更高版本
說明使用ECS公用鏡像建立的執行個體會預設安裝雲助手Agent。
使用自訂鏡像或者雲市場鏡像建立的執行個體需要您首先確認作業系統是否支援雲助手,再自行安裝雲助手Agent。具體步驟請參見安裝雲助手Agent。
支援功能及版本
雲助手所支援的功能及其對應的最低版本號碼如下表所示:
雲助手支援的功能 | 雲助手最低版本號碼(Linux執行個體) | 雲助手最低版本號碼(Windows執行個體) |
支援上報雲助手心跳 | 1.0.2.458 | 1.0.0.149 |
傳送檔案 | 1.0.2.569 | 1.0.0.149 |
執行命令支援指定使用者名稱稱 | 2.2.0.106 | 2.1.0.50 |
支援設定執行個體下次啟動時執行命令 | 2.2.0.46 | 2.1.0.50 |
支援設定執行個體每次啟動時執行命令 | ||
支援會話管理(Session Manager) | 2.2.3.196 | 2.1.3.196 |
定時任務的執行規則支援Rate運算式、At運算式 | 2.2.3.282 | 2.1.3.282 |
定時任務的執行規則中,Cron運算式支援指定年份或時區 | 2.2.3.282 | 2.1.3.282 |
支援內建環境參數 | 2.2.3.309 | 2.1.3.309 |
支援將執行個體名稱作為內建環境參數 | 2.2.3.344 | 2.1.3.344 |
支援通過指定特殊退出碼停止或重啟執行個體 | 2.2.3.317 | 2.1.3.317 |
支援通過指定容器名稱,在容器內執行命令 | 2.2.3.344 | 2.1.3.344 |
支援通過指定容器ID,在容器內執行命令 | 2.2.3.344 | 2.1.3.344 |
雲助手安裝目錄檔案說明
Linux 執行個體
在 Linux 作業系統的執行個體中,雲助手的主要檔案和目錄位於 /usr/local/share/aliyun-assist/。
/usr/local/share/aliyun-assist/
2.x.x.xxx/ (例如: 2.2.4.965) - 雲助手具體版本安裝目錄
acs-plugin-manager: 雲助手外掛程式管理器程式。
aliyun_assist_update: 雲助手升級程式。
aliyun_installer: 早期的組件安裝器(已廢棄,功能由 acs-plugin-manager 替代)。
aliyun-service: 雲助手 Agent 的主程式。
assist_daemon: 雲助手守護進程,確保主程式 aliyun-service 的穩定運行。
config/: 設定檔目錄。
GlobalSignRootCA.crt: 用於與雲助手服務端進行 HTTPS 安全通訊的根憑證檔案。
hash_file: 程式檔案的雜湊記錄,用於檔案一致性校正,確保核心檔案未被篡改。
init/: 安裝及卸載指令碼目錄。
clean: 清理指令碼,用於移除雲助手相關配置和檔案。
install: 安裝指令碼。
uninstall: 卸載指令碼。
version: 記錄當前雲助手用戶端版本資訊的檔案。
log/: 記錄檔目錄。
aliyun_assist_main.log: 記錄雲助手當天的作業記錄。
aliyun_assist_main.log.YYYYMMDD: 歷史記錄檔,按日期歸檔。
plugin/: 預裝外掛程式目錄。
ACS-ECS-SysInfoGatherer: 雲助手資料擷取外掛程式。
cache/: 快取檔案目錄。
state_configs.json: 雲助手Agent 本機快取的營運與配置OOS Inventory 採集設定檔。
config/: 全域設定檔目錄。
task_sign_certs/: 雲助手Agent 本機快取的、用於校正任務簽名的公開金鑰。
hybrid/: 受管理的執行個體註冊資訊目錄。
hardwareHash: 當執行個體註冊為受管理的執行個體時,由雲助手 Agent 產生的用於標識機器的硬體資訊記錄檔案。
plugin/: 雲助手外掛程式目錄。
installed_plugins.db: 記錄外掛程式的資料資訊。
work/: 執行檔案存放目錄。
script/: 雲助手執行檔案存放目錄。
注意:從 2.x.3.704 版本開始,為增強安全性,雲助手預設不再將執行指令碼自動落盤。您需要手動開啟相關配置,才能在此目錄下看到執行的指令檔。
region-id: 記錄當前執行個體所處地區(Region)資訊的檔案。
Windows 執行個體
在 Windows 作業系統的執行個體中,雲助手的主要檔案和目錄位於 C:\ProgramData\aliyun\assist\。
C:\ProgramData\aliyun\assist\
2.x.x.xxx/ (例如: 2.1.4.965) - 雲助手具體版本安裝目錄
acs-plugin-manager.exe: 雲助手外掛程式管理器程式。
aliyun_assist_update.exe: 雲助手升級程式。
aliyun_installer.exe: 雲助手安裝程式。
aliyun_assist_service.exe: 雲助手服務的主程式。
install.bat: 雲助手安裝指令碼。
install.exe: 雲助手安裝程式。
PatchGo.dll: 針對 Windows Server 2008 環境的補丁,用於避免 Go 語言運行時導致的時鐘跳變問題。
version.ini: 記錄雲助手版本資訊。
config/: 設定檔目錄。
GlobalSignRootCA.crt: 雲助手服務端通訊所需的認證檔案。
hash_file: 程式檔案的雜湊記錄,用於檔案一致性驗證。
log/: 記錄檔目錄。
aliyun_assist_main.log: 當天的作業記錄。
aliyun_assist_main.log.YYYYMMDD: 歷史記錄檔,按日期歸檔。
plugin/: 預裝及已安裝外掛程式目錄。
ACS-ECS-SysInfoGatherer: 資料擷取外掛程式。
SessionManager: 實現免密登入功能的外掛程式。
installed_plugins.db: 雲助手外掛程式的資訊。
cache/: 快取檔案目錄。
state_configs.json: 雲助手Agent 本機快取的 OOS Inventory 採集設定檔。
config/: 設定檔目錄。
task_sign_certs/: 雲助手Agent 本機快取的任務簽名校正公開金鑰。
hybrid/: 受管理的執行個體資訊目錄。
plugin/: 外掛程式資料目錄。
installed_plugins.db: 外掛程式的資料資訊。
work/: 執行檔案存放目錄。
script/: 雲助手執行的指令檔存放目錄。
注意:從 2.x.3.704 版本開始,預設不自動儲存指令檔到此目錄,需手動開啟。
config.ini: 記錄雲助手版本等配置資訊的檔案。
region-id: 記錄執行個體所處地區資訊的檔案。
version: 記錄當前雲助手版本資訊的檔案。
計費說明
雲助手服務本身不收費。
但是使用雲助手在部署與營運雲資源過程中可能會產生費用。ECS資源計費詳情,請參見計費概述。
資源佔用
雲助手Agent所在主機的各項資源佔用情況如下:
主機資源 | Linux作業系統 | Windows作業系統 |
CPU | 平均CPU使用率不到1% | |
實體記憶體 | 約20 MB | 約30 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狀態 | 狀態顯示 | 描述 |
| 系統正在校正或發送命令 | 存在至少一台執行個體的命令執行狀態為 |
| 定時執行的命令已發送,等待運行 | 存在至少一台執行個體的命令執行狀態為 |
| 命令正在執行個體上運行 | 存在至少一台執行個體的命令執行狀態為 |
| 命令執行成功 | 各個執行個體上的命令執行狀態均為
|
| 命令執行失敗 | 各個執行個體上的命令執行狀態均為
|
| 正在停止任務 | 存在至少一台執行個體的命令執行狀態為 |
| 任務已停止 | 所有執行個體的命令執行狀態是
|
| 部分執行個體執行成功且部分執行個體執行失敗 | 各個執行個體的命令執行狀態均為 |
授權RAM使用者使用雲助手
由於阿里雲帳號(即主帳號)具備所有資源的許可權,為確保您的阿里雲帳號及雲資源的安全使用,如非必要應避免直接使用阿里雲帳號進行操作。推薦使用RAM使用者代替阿里雲帳號進行相關操作,在使用雲助手時,RAM使用者需要獲得雲助手的相關許可權授權。如何為RAM使用者授予雲助手許可權,請參見授權RAM使用者使用雲助手。
使用雲助手
您可以通過ECS控制台或者調用API使用雲助手。
業務情境 | 參考文檔 | 相關API |
2017年12月01日之後使用公用鏡像建立的ECS執行個體,預設預裝雲助手Agent,因此,部分ECS執行個體仍需自行安裝。 | ||
通過程式調用API。 | 不涉及 | |
建立一份雲助手命令。 | ||
對目標ECS執行個體執行已建立的命令。 | ||
查看命令的執行狀態,查看命令的執行結果,即在指定ECS執行個體中的實際輸出資訊。 | ||
修改已建立的命令,支援修改命令名稱和描述。 | 不涉及 | |
為一份雲助手命令新增版本。或者您希望修改命令的名稱、描述、類型、內容、執行路徑或者逾時時間等更多屬性。 | 不涉及 | |
停止進行中的命令進程。 | ||
刪除不再需要的雲助手命令,避免命令達到配額上限時影響建立命令。 |