模板名称
ACS-ECS-ScheduleToRunCommand 定时批量在ECS实例上运行命令
模板描述
定时批量在多台ECS实例上运行云助手命令,适用于需要定期在多台ECS实例上执行命令的场景,例如系统维护和任务自动化。在配置过程中,用户需要提供以下必填参数信息:地域ID(regionId):用于指定需要运行命令的ECS实例所在的区域,Cron表达式(triggerCron):用于定义任务的定时触发规则,目标实例(targets):用于定义具体需要操作的ECS实例,以及命令类型(commandType)和命令内容(commandContent)。模板在执行后会返回运行命令的输出结果列表,方便用户验证命令的执行状态。
模板类型
自动化
所有者
Alibaba Cloud
输入参数
参数名称 | 描述 | 类型 | 是否必填 | 默认值 | 约束 |
triggerEndDate | 时间触发器结束时间 | String | 是 | ||
targets | 目标实例 | Json | 是 | ||
regionId | 地域ID | String | 否 | {{ ACS::RegionId }} | |
triggerCron | cron表达式 | String | 否 | 0 0 12 ? * * | |
timeZone | 时区 | String | 否 | UTC | |
commandType | 云助手命令类型 | String | 否 | RunShellScript | |
commandContent | 云助手命令 | String | 否 | echo hello | 最大长度 : 16384 |
workingDir | 命令在ECS实例中的运行目录 | String | 否 | “” | |
timeout | 超时时间 | Number | 否 | 600 | |
rateControl | 任务执行的并发比率 | Json | 否 | {‘Mode’: ‘Concurrency’, ‘MaxErrors’: 0, ‘Concurrency’: 10} | |
OOSAssumeRole | OOS扮演的RAM角色 | String | 否 | OOSServiceRole |
输出参数
参数名称 | 描述 | 类型 |
commandOutputs | List |
执行此模板需要的权限策略
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:DescribeInstances",
"ecs:DescribeInvocationResults",
"ecs:DescribeInvocations",
"ecs:RunCommand"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
详情
ACS-ECS-ScheduleToRunCommand详情
模板内容
FormatVersion: OOS-2019-06-01
Description:
en: 'Schedule to run command on ECS instances, applicable to scenarios that require periodically running commands on multiple ECS instances, such as system maintenance and task automation. During configuration, users need to provide the following required parameter information: Region ID (regionId), which specifies the region of the ECS instances where the commands will be run, Cron Expression (triggerCron), which defines the schedule for the task, Target Instances (targets), which defines the specific ECS instances to be operated on, and Command Type (commandType) and Command Content (commandContent). Upon execution, the template will return a list of the output results of the run command, enabling users to verify the status of the command executions.'
zh-cn: 定时批量在多台ECS实例上运行云助手命令,适用于需要定期在多台ECS实例上执行命令的场景,例如系统维护和任务自动化。在配置过程中,用户需要提供以下必填参数信息:地域ID(regionId):用于指定需要运行命令的ECS实例所在的区域,Cron表达式(triggerCron):用于定义任务的定时触发规则,目标实例(targets):用于定义具体需要操作的ECS实例,以及命令类型(commandType)和命令内容(commandContent)。模板在执行后会返回运行命令的输出结果列表,方便用户验证命令的执行状态。
name-en: ACS-ECS-ScheduleToRunCommand
name-zh-cn: 定时批量在ECS实例上运行命令
categories:
- time_trigger
Parameters:
regionId:
Type: String
Label:
en: RegionId
zh-cn: 地域ID
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
triggerCron:
Description:
en: 'refer them here: https://help.aliyun.com/document_detail/169784.html'
zh-cn: '详情参考:https://help.aliyun.com/document_detail/169784.html'
Label:
en: Cronexpression
zh-cn: cron表达式
Type: String
AssociationProperty: Cron
Default: 0 0 12 ? * *
triggerEndDate:
Description:
en: 'Format: yyyy-MM-ddTHH:mm:ssZ.'
zh-cn: '格式:yyyy-MM-ddTHH:mm:ssZ'
Label:
en: triggerEndDate
zh-cn: 时间触发器结束时间
Type: String
AssociationProperty: DateTime
AssociationPropertyMetadata:
Format: 'YYYY-MM-DDTHH:mm:ssZ'
timeZone:
Label:
en: timeZone
zh-cn: 时区
Type: String
AssociationProperty: TimeZone
Default: UTC
targets:
Type: Json
Label:
en: TargetInstance
zh-cn: 目标实例
AssociationProperty: Targets
AssociationPropertyMetadata:
ResourceType: 'ALIYUN::ECS::Instance'
RegionId: regionId
Status: Running
commandType:
Label:
en: CommandType
zh-cn: 云助手命令类型
Type: String
AllowedValues:
- RunBatScript
- RunPowerShellScript
- RunShellScript
Default: RunShellScript
commandContent:
Label:
en: CommandContent
zh-cn: 云助手命令
Type: String
MaxLength: 16384
AssociationProperty: Code
Default: echo hello
workingDir:
Description:
en: '<td class="entry colsep-1 rowsep-1">
<p class="p">Default value:</p>
<ul class="ul">
<li class="li"> Linux instances: the home directory of the administrator (the root user), which is<code class="ph codeph">/root</code>.</li>
<li class="li"> Windows instances: the directory where the Cloud Assistant client process resides,such as <code class="ph codeph">C:\Windows\System32</code>.</li>
</ul>
</td>'
zh-cn: <td class="entry colsep-1 rowsep-1">
<p class="p">默认值:</p>
<ul class="ul">
<li class="li">Linux系统实例默认在管理员(root用户)的home目录下,即<code class="ph codeph">/root</code>。</li>
<li class="li">Windows系统实例默认在云助手客户端进程所在目录,例如<code class="ph codeph">C:\Windows\System32</code>。</li>
</ul>
</td>
Label:
en: WorkingDir
zh-cn: 命令在ECS实例中的运行目录
Type: String
Default: ''
timeout:
Label:
en: Timeout
zh-cn: 超时时间
Type: Number
Default: 600
rateControl:
Label:
en: RateControl
zh-cn: 任务执行的并发比率
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 10
OOSAssumeRole:
Label:
en: OOSAssumeRole
zh-cn: OOS扮演的RAM角色
Type: String
Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: timerTrigger
Action: ACS::TimerTrigger
Description:
en: Triggers a task as scheduled by specifying type and expression
zh-cn: 通过指定触发类型和表达式按计划触发任务
Properties:
Type: cron
Expression: '{{ triggerCron }}'
EndDate: '{{ triggerEndDate }}'
TimeZone: '{{ timeZone }}'
- Name: getInstance
Description:
en: Views the ECS instances
zh-cn: 获取ECS实例
Action: 'ACS::SelectTargets'
Properties:
ResourceType: 'ALIYUN::ECS::Instance'
RegionId: '{{ regionId }}'
Filters:
- '{{ targets }}'
Outputs:
instanceIds:
Type: List
ValueSelector: 'Instances.Instance[].InstanceId'
- Name: runCommand
Action: 'ACS::ECS::RunCommand'
Description:
en: Execute cloud assistant command
zh-cn: 执行云助手命令
Properties:
regionId: '{{ regionId }}'
commandContent: '{{ commandContent }}'
instanceId: '{{ ACS::TaskLoopItem }}'
commandType: '{{ commandType }}'
workingDir: '{{ workingDir }}'
timeout: '{{ timeout }}'
Loop:
RateControl: '{{ rateControl }}'
Items: '{{ getInstance.instanceIds }}'
Outputs:
commandOutputs:
AggregateType: 'Fn::ListJoin'
AggregateField: commandOutput
Outputs:
commandOutput:
Type: String
ValueSelector: invocationOutput
Outputs:
commandOutputs:
Type: List
Value: '{{ runCommand.commandOutputs }}'
Metadata:
ALIYUN::OOS::Interface:
ParameterGroups:
- Parameters:
- timeZone
- triggerCron
- triggerEndDate
Label:
default:
zh-cn: 定时设置
en: Timer Trigger Configure
- Parameters:
- commandType
- commandContent
- workingDir
- timeout
Label:
default:
zh-cn: 执行命令选型
en: run command options
- Parameters:
- regionId
- targets
Label:
default:
zh-cn: 选择实例
en: Select Ecs Instances
- Parameters:
- rateControl
- OOSAssumeRole
Label:
default:
zh-cn: 高级选项
en: Control Options