云助手概述

更新时间:2025-02-20 09:31:12

云助手是专为云服务器ECS打造的原生自动化运维工具,免密码、免登录、无需使用跳板机,即可批量执行命令(Shell、PowerShell、Bat等),实现自动化运维脚本、轮询进程、安装卸载软件、启动或停止服务、安装补丁或安全更新等任务。

功能特性

  • 批量运维

    同一脚本命令可在多台安装了云助手Agent的实例上执行,实例间互不影响。

  • 上传文件

    可以将本地的文件(例如配置文件、脚本等),通过云助手上传到ECS实例。

  • 公共命令

    公共命令包含一些比较复杂的服务器配置、健康或安全检测、应用安装、文件处理、系统补丁安装、更改系统配置、服务或应用管理的脚本,以及云助手插件(包含脚本或可执行程序)。使用公共命令,可以快速地完成某些复杂配置,极大地提升您的操作和运维效率。

  • 简单易用

    您可以使用自定义参数/内置参数实现命令的简单灵活配置,使一份云助手命令在多种场景中使用。

  • 安全可控

    云助手不会主动发起任何操作,所有操作都在您的可控范围内。

应用场景

云助手可帮您完成部署与运维任务,包括但不限于:

  • 上传并运行自动化运维脚本

  • 运行实例上已有的脚本

  • 管理软件生命周期

  • 部署代码或者应用

  • 轮询进程

  • 安装补丁或安装安全更新

  • 从对象存储OSS或者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实例)

云助手支持的功能

云助手最低版本号(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操作系统

主机资源

Linux操作系统

Windows操作系统

CPU

平均CPU使用率不到1%

物理内存

20 MB

30 MB

磁盘I/O

平稳运行时几乎没有I/O,仅在下载升级安装包和保存命令脚本等场景下产生磁盘I/O

网络I/O

平稳运行时仅有心跳上报等数据产生的少量I/O

名词解释

云助手的常用名词及其具体描述如下表所示。

常见名词

说明

常见名词

说明

云助手

云助手官方名称,可以帮您在ECS实例以及弹性裸金属服务器实例上自动以及批量执行日常维护任务。所有阿里云地域均支持云助手服务。

云助手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状态

状态显示

描述

API状态

状态显示

描述

Pending

下发中

系统正在校验或发送命令。

Invalid

校验不通过

指定命令类型或参数有误。

Aborted

下发失败

向实例发送命令失败。实例必须在运行中,且命令可以1分钟内发送完成。

Running

执行中

命令正在被执行。

Success

执行成功

  • 单次执行的命令:命令执行完成,且退出码为0。

  • 定时执行的命令:上一次运行成功且退出码为0,且指定的时间已结束。

Failed

执行完成,退出码非0

  • 单次执行的命令:命令执行完成,且退出码非0。

  • 定时执行的命令:上一次运行成功且退出码非0,且指定的时间将中止。

Error

执行异常

命令执行时发生异常无法继续。

Timeout

执行超时

命令执行超时。

Cancelled

执行取消

命令的执行动作已经取消,命令未曾启动。

Stopping

停止执行中

命令正在被停止执行。

Stopped

已停止执行

命令已经被停止。

Terminated

执行已终止

命令运行时被终止。

Scheduled

命令等待运行

定时执行的命令等待运行。

批量命令执行状态

为便于管理批量执行或者定时执行,您可以从总执行状态、实例级别执行状态以及执行记录级别的状态概念出发管理命令运行的生命周期,对应DescribeInvocationsInvocation下的InvocationStatus字段。状态各级别之间的包含关系如下图所示。状态管理的包含关系示意图

在多台实例上运行一条命令,总执行状态说明如下表所示。

API状态

状态显示

描述

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

业务场景

参考文档

相关API

20171201日之后使用公共镜像创建的ECS实例,默认预装云助手Agent,因此,部分ECS实例仍需自行安装。

安装云助手Agent

通过程序调用API。

Java程序中使用云助手执行命令

不涉及

新建一份云助手命令。

创建命令

对目标ECS实例执行已创建的命令。

执行命令

查看命令的执行状态,查看命令的执行结果,即在指定ECS实例中的实际输出信息。

查看执行结果及修复常见问题

修改已创建的命令,支持修改命令名称和描述。

修改命令

不涉及

为一份云助手命令新增版本。或者您希望修改命令的名称、描述、类型、内容、执行路径或者超时时间等更多属性。

克隆命令

不涉及

停止正在进行的命令进程。

停止命令

StopInvocation

删除不再需要的云助手命令,避免命令达到配额上限时影响新建命令。

删除命令

DeleteCommand

  • 本页导读 (1)
  • 功能特性
  • 应用场景
  • 使用限制
  • 支持功能及版本
  • 计费说明
  • 资源占用
  • 名词解释
  • 命令执行状态
  • 单条命令执行状态
  • 批量命令执行状态
  • 授权RAM用户使用云助手
  • 使用云助手
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等