全部產品
Search
文件中心

Elastic Compute Service:雲助手概述

更新時間:Feb 21, 2025

雲助手是專為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

計費說明

雲助手服務本身不收費。

但是使用雲助手在部署與營運雲資源過程中可能會產生費用。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執行。

  • Windows作業系統中任務進程名稱為aliyun_assist_service。

  • Linux作業系統中任務進程名稱為aliyun-service。

雲助手守護進程

用於監控雲助手Agent的資源消耗情況,上報雲助手Agent的運行狀態,以及當雲助手Agent崩潰時重啟雲助手Agent

  • 服務名稱:AssistDaemon

  • 路徑:/usr/local/share/assist-daemon/assist_daemon

說明

目前雲助手守護進程僅支援Linux作業系統。

任務執行路徑

雲助手會將使用者的命令內容以檔案形式先儲存到執行個體上,然後再執行檔案,具體儲存路徑如下:

  • Linux:/tmp

  • Windows:雲助手安裝路徑/work/script

命令

需要在執行個體中執行的具體命令操作,如一份Shell指令碼或者PowerShell指令碼。

自訂參數

您在命令中設定的變數值,以{{key}}的形式表示,可以在執行命令時以{{"key":"value"}}的形式設定自訂參數的值。由於您在一個地區下能保有的雲助手命令有配額限制,建議您通過設定自訂參數提高命令的靈活性以及多情境適用性。您也可以指定內建環境參數作為自訂參數,執行命令時無需手動對參數賦值,雲助手將為您自動替換為環境中對應的值。

單次執行

在一台或者多台執行個體中執行某個命令,即為一次執行(Invocation)。

定時執行

在一台或者多台執行個體中執行某個命令時,您可以指定執行時序或周期,定時執行命令進程。

命令執行狀態

單條命令執行狀態

在一台執行個體上運行一條命令時,執行個體層級的狀態如下表所示,對應DescribeInvocationsInvokeInstance下的InvocationStatus欄位,或DescribeInvocationResults中的InvocationStatus欄位。

API狀態

狀態顯示

描述

Pending

下發中

系統正在校正或發送命令。

Invalid

校正不通過

指定命令類型或參數有誤。

Aborted

下發失敗

向執行個體發送命令失敗。執行個體必須在運行中,且命令可以1分鐘內發送完成。

Running

執行中

命令正在被執行。

Success

執行成功

  • 單次執行的命令:命令執行完成,且退出碼為0。

  • 定時執行的命令:上一次運行成功且退出碼為0,且指定的時間已結束。

Failed

執行完成,退出碼非0

  • 單次執行的命令:命令執行完成,且退出碼非0。

  • 定時執行的命令:上一次運行成功且退出碼非0,且指定的時間將中止。

Error

執行異常

命令執行時發生異常無法繼續。

Timeout

執行逾時

命令執行逾時。

Cancelled

執行取消

命令的執行動作已經取消,命令未曾啟動。

Stopping

停止執行中

命令正在被停止執行。

Stopped

已停止執行

命令已經被停止。

Terminated

執行已終止

命令運行時被終止。

Scheduled

命令等待運行

定時執行的命令等待運行。

批量命令執行狀態

為便於管理批量執行或者定時執行,您可以從總執行狀態、執行個體層級執行狀態以及執行記錄層級的狀態概念出發管理命令啟動並執行生命週期,對應DescribeInvocationsInvocation下的InvocationStatus欄位。狀態各層級之間的內含項目關聯性如下圖所示。狀態管理的內含項目關聯性示意圖

在多台執行個體上運行一條命令,總執行狀態說明如下表所示。

API狀態

狀態顯示

描述

Pending

系統正在校正或發送命令

存在至少一台執行個體的命令執行狀態為Pending,則總執行狀態為Pending

Scheduled

定時執行的命令已發送,等待運行

存在至少一台執行個體的命令執行狀態為Scheduled,則總執行狀態為Scheduled

Running

命令正在執行個體上運行

存在至少一台執行個體的命令執行狀態為Running,則總執行狀態為Running

Success

命令執行成功

各個執行個體上的命令執行狀態均為StoppedSuccess,且至少一個執行個體的命令執行狀態是Success,則總執行狀態為Success

  • 立即啟動並執行任務:命令執行完成,且退出碼為0。

  • 定時啟動並執行任務:最近一次執行成功且退出碼為0,且指定的時間已全部完成。

Failed

命令執行失敗

各個執行個體上的命令執行狀態均為StoppedFailed,則總執行狀態為Failed。執行個體上的命令執行狀態一項或多項為以下狀態時,傳回值均為Failed狀態:

  • 命令校正失敗(Invalid)。

  • 命令發送失敗(Aborted)。

  • 命令執行完成但退出碼非0(Failed)。

  • 命令執行逾時(Timeout)。

  • 命令執行異常(Error)。

Stopping

正在停止任務

存在至少一台執行個體的命令執行狀態為Stopping,則總執行狀態為Stopping

Stopped

任務已停止

所有執行個體的命令執行狀態是Stopped,則總執行狀態為Stopped。執行個體上的命令執行狀態為以下狀態時,傳回值均為Stopped狀態:

  • 任務已取消(Cancelled)。

  • 任務已終止(Terminated)。

PartialFailed

部分執行個體執行成功且部分執行個體執行失敗

各個執行個體的命令執行狀態均為SuccessFailedStopped,則總執行狀態為PartialFailed

授權RAM使用者使用雲助手

由於阿里雲帳號(即主帳號)具備所有資源的許可權,為確保您的阿里雲帳號及雲資源的安全使用,如非必要應避免直接使用阿里雲帳號進行操作。推薦使用RAM使用者代替阿里雲帳號進行相關操作,在使用雲助手時,RAM使用者需要獲得雲助手的相關許可權授權。如何為RAM使用者授予雲助手許可權,請參見授權RAM使用者使用雲助手

使用雲助手

您可以通過ECS控制台或者調用API使用雲助手。

業務情境

參考文檔

相關API

2017年12月01日之後使用公用鏡像建立的ECS執行個體,預設預裝雲助手Agent,因此,部分ECS執行個體仍需自行安裝。

安裝雲助手Agent

通過程式調用API。

通過SDK執行命令

不涉及

建立一份雲助手命令。

建立命令

對目標ECS執行個體執行已建立的命令。

執行命令

查看命令的執行狀態,查看命令的執行結果,即在指定ECS執行個體中的實際輸出資訊。

查看執行結果及修複常見問題

修改已建立的命令,支援修改命令名稱和描述。

修改命令

不涉及

為一份雲助手命令新增版本。或者您希望修改命令的名稱、描述、類型、內容、執行路徑或者逾時時間等更多屬性。

複製命令

不涉及

停止進行中的命令進程。

停止命令

StopInvocation

刪除不再需要的雲助手命令,避免命令達到配額上限時影響建立命令。

刪除命令

DeleteCommand