运维编排场景系列----分批到机器上运行命令

简介: 场景简介 当某一任务需对多个实例进行云助手操作命令,而且需查看在部分实例上由云助手发布的内容与已存在的内容是否会引起冲突,若无冲突则余下实例可以全部执行此任务。由上述内容可以通过Tag的方式查找需要操作的实例,并使用OOS云助手来实现自动化部署,设置分批执行来解决验证发布内容在部分实例的运行情况。

场景简介

当某一任务需对多个实例进行云助手操作命令,而且需查看在部分实例上由云助手发布的内容与已存在的内容是否会引起冲突,若无冲突则余下实例可以全部执行此任务。由上述内容可以通过Tag的方式查找需要操作的实例,并使用OOS云助手来实现自动化部署,设置分批执行来解决验证发布内容在部分实例的运行情况。

解决方案

任务分解:
1.通过tagKey-tagValue来查找需要操作的实例
2.设置执行的批次
3.循环批次内的实例执行云助手命令
4.执行所有批次

一、打开控制台,找到运维编排
1566456218571_ceaae01e_41f9_46d4_8f30_c85f54ad5422

二、创建模版
根据以上的任务步骤来看可以把此任务创建成以下模版。点击创建模版
1566456542256_2289028b_ba31_4c41_bbeb_2bee10a82659

或在公共模版中查找此模版ACS-ECS-BulkyRunCommandByTag1566536064642_d038fbdd_ef91_447d_82f6_f6342ddf8712

模版内容如下

FormatVersion: OOS-2019-06-01
Description: Run command on ECS instances by specifying tag.
Parameters:
  commandContent:
    Description: Command content to run in ECS instance.
    Type: String
  tagKey:
    Description: The tag key for query ECS instances.
    Type: String
    MinLength: 1
    MaxLength: 30
  tagValue:
    Description: The tag value for query ECS instances.
    Type: String
    MinLength: 1
    MaxLength: 30
  commandType:
    Description: The type of command.
    Type: String
    AllowedValues:
      - RunBatScript
      - RunPowerShellScript
      - RunShellScript
  batchNumber:
    Type: Number
    Description: The number of times of wholesale distribution.
    MinValue: 1
    MaxValue: 10
    Default: 5
  maxErrors:
    Description: The maximum number of errors allowed during task execution.
    Type: Number
    Default: 0
  OOSAssumeRole:
    Description: The RAM role to be assumed by OOS.
    Type: String
    Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: describeRunningInstancesByTag
    Action: 'ACS::ExecuteAPI'
    Description: Views the ECS instances by specifying tag.
    Properties:
      Service: ECS
      API: DescribeInstances
      Parameters:
        Status: Running
        Tags:
          - Key: '{{ tagKey }}'
            Value: '{{ tagValue }}'
    Outputs:
      instanceIds:
        Type: List
        ValueSelector: 'Instances.Instance[].InstanceId'
  - Name: runCommand
    Action: 'ACS::ECS::RunCommand'
    Description: Invokes ECS instance command.
    Properties:
      commandContent: '{{ commandContent }}'
      instanceId: '{{ ACS::TaskLoopItem }}'
      commandType: '{{ commandType }}'
    Loop:
      MaxErrors: '{{ maxErrors }}'
      Items: '{{ describeRunningInstancesByTag.instanceIds }}'
      Concurrency:
        'Fn::CalculateBatch':
          - '{{ batchNumber }}'
          - '{{ describeRunningInstancesByTag.instanceIds }}'
      Outputs:
        commandOutputs:
          AggregateType: 'Fn::ListJoin'
          AggregateField: commandOutput
    Outputs:
      commandOutput:
        Type: String
        ValueSelector: invocationOutput
Outputs:
  commandOutputs:
    Type: List
    Value: '{{ runCommand.commandOutputs }}'

、创建执行
查找到此模版后,点击创建执行
1566535980697_2642b3cd_ac87_4dc0_bd53_cf432c97fe73

四、选择分批执行方式,点击下一步:设置参数
根据实际需要选择分批执行的方式
1、自动并发
循环并发控制为自动并发时,不需要任务执行者来管理任务是否需要继续执行。系统会自动执行此任务下的所有批次。
1566543705824_6096c330_1e4c_47eb_9208_d7303971468c

2、第一批暂停
循环并发控制为第一批暂停时,当把任务分为N个批次后,当第一个批次执行结束后,此时任务会进入暂停状态,等待执行者确认后继续执行,当第一次确认过后,剩下的所有批次无需再次确认是否需要继续执行,直接执行至此任务结束。(:当使用第一批暂停时按下图设置)
1566543604563_c9a7eed8_a59f_4e9d_a281_943b97f4471d

3、每批暂停
循环并发控制为每批暂停时,把任务分成N个批次后,每当一个批次的所有子任务执行结束后,都需要等待任务执行者确认后才能继续执行下一批次。(使用每批暂停时按下图选择)
1566543772981_77d401f6_9492_47fe_b29e_66b495683d4b

五、设置参数
如下图所示,根据实际的业务情况输入需要的参数。参数输入完毕后,点击下一步:确认创建1566535882018_10e14fca_bde5_4cb9_8f6d_eafd96075a42

参数介绍:
commandContent:输入需要操作的部署命令,命令类型可以是shell、PowerShell、Bat
commandType:选择执行部署命令的类型
tagKey:Tag标签key
tagValue:Tag标签value
maxErrors:循环的最大错误数
batchNumber:设置分批执行的批次数

六、创建执行
参数确认完毕后,点击创建执行之后,此任务开始正式执行
1566463382589_009a564c_8646_4b47_b14f_1bc30bb14757

七、执行过程,执行暂停的恢复方法
1、循环并发控制自动并发时,无论此任务有多少批次,都不需要任务执行者来确认是否继续执行。会自动执行所有的批次。其过程如下所示。
1566540227448_047a961e_88ab_4b2e_abf9_d94f4555ba44



2、循环并发控制第一批暂停时,当第一批次执行结束后,任务进入等待中,需要任务执行者来确认是否继续执行此任务。若想继续执行,按下图操作,点击恢复,此时任务开始继续执行。余下所有批次无需确认恢复则可以全部执行至结束。
1566539978568_972ad60f_3a52_4d60_b187_e982c21f9cf6



3、循环并发控制每批暂停时,每当有一批次的子任务执行结束后,整个任务都会进入等待中,进而需要点击恢复来继续执行。如下图所示,当批次2运行结束后,没有经过确认恢复,批次3就无法执行。
1566540679312_687c15da_a18b_43c8_b7af_5d1039971fc5

八、异常失败处理
当执行时,子任务可能由于某些原因导致执行失败,如下图所示,并点击下图所标位置,查看失败的任务详情。
1566466024760_10385638_e221_410a_9eaf_3bd75c9cc376

在失败详情页找到失败的子任务时,可以首先选择先重试,让此子任务重新执行,若重试执行后依然失败,可以选择继续重试,或者也可以选择跳过取消放弃当前的子任务。


重试:在当前情况下重新执行失败的子任务
跳过:跳过此子任务
取消:取消当前子任务的执行

1566541286693_a4b379e7_be05_4ccb_b460_40844e9294c4

如上图所示当前第一批次有失败的情况,分别对其进行了跳过和取消处理,其表现形式如下图所示。
1566543132437_5fdfeeba_4fb9_48d0_9e0d_c99262655b18

九、执行结果
根据上面的例子输入commandContent:date,此脚本为输出当前时间。如下所示,根据结果显示,当前脚本在每个实例上都执行了一遍。
1566545152062_2d933e81_ebed_4994_8e25_8f945b87d534

总结

由以上的任务可以发现,在含有多个子执行的任务中使用分批执行的模式,可以快速定位并重试失败任务的执行。使用分批执行的模式来执行云助手命令进行发布,方便了运维层次的操作,以及方便根据批次来验证发布内容的实际效果是否符合预期的效果或者发布内容是否存在问题,若不达标则可以进行余下批次的取消。

欢迎使用OOS

OOS客户支持钉钉群:23330931
OOS管理控制台的链接
OOS帮助文档的链接


系列文章

主题文章

阿里云重磅发布云上自动化利器——运维编排OOS

最佳实践

玩转运维编排服务的权限:Assume Role+Pass Role

场景系列

运维编排场景系列----更新ECS镜像
运维编排场景系列-----给ECS实例自动打TAG
运维编排场景系列----从实例中拷贝文件到OSS
运维编排场景系列----给实例加到SLS机器组
运维编排场景系列----检测MFA功能状态
阿里云运维编排新功能:一键批量克隆ECS
运维编排场景系列-----每日统计多Region实例的运行状态
运维编排场景系列-----如何使用jq
运维编排场景系列----分批到机器上运行命令

相关文章
|
5天前
|
存储 弹性计算 缓存
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考
本文更新了2026年阿里云全系列云服务器租赁活动报价,所有特惠资源均可前往阿里云活动中心选购,整体覆盖从个人入门到企业级高性能场景的全梯度需求。其中轻量应用服务器主打极致性价比,2核2G峰值200M带宽配置每日10点、15点限时抢购价仅38元/年,2核4G配置379元/年起;高性价比的经济型e实例、通用算力型u2i实例覆盖2核4G至4核32G全档位,适配开发测试与中小型企业业务;搭载英特尔至强6处理器的第九代c9i企业级实例算力较上代提升20%,支撑高并发生产环境,不同实例规格价差清晰,用户可根据自身业务负载与预算灵活选型。
1573 112
|
12天前
|
云安全 人工智能 运维
阿里云联动百位企业安全专家,共识Agent防御最佳实践
当Agent成为新员工,你的安全边界在哪里?
1939 8
阿里云联动百位企业安全专家,共识Agent防御最佳实践
|
6天前
|
人工智能 程序员 API
Codex 接入 DeepSeek-V4-Flash:还能补上识图,提供两套方案
Codex 接入 DeepSeek-V4-Flash 怎么配?本文覆盖 CLI 与桌面端,再用 qwen3-vl-flash 补识图,两套方案可直接照做
|
6天前
|
编解码 人工智能 安全
2核4G/4核8G/8核16G阿里云服务器如何选择实例?经济型e、通用算力型u2i与计算型c9i选哪个?
本文介绍了阿里云2核4G、4核8G、8核16G三档主流配置下经济型e、通用算力型u2i和计算型c9i三种实例的最新活动价格与适用场景。同配置下三者价差显著,以2核4G为例,经济型e低至599.93元/年,计算型c9i则高达1742.08元/年。文章详细解析了各实例的性能定位:经济型e适合轻负载入门场景,u2i兼顾稳定算力与性价比,c9i凭借第9代至强处理器与芯片级安全能力支撑高性能业务。同时提示用户可叠加满减优惠券享受折上折,建议根据业务负载与预算综合决策。
526 112
|
18天前
|
人工智能 前端开发 Linux
Codex 桌面版安装 + CC Switch 接入第三方 API 完整教程(2026 最新)
2026最新教程:手把手教你安装Codex桌面版,通过CC Switch v3.17.0一键接入Fenno等国产API(兼容OpenAI Responses格式),跳过账号登录,完整启用代码审查、多步任务与上下文感知功能。零基础友好,全程图文实操。(239字)
2565 4
|
10天前
|
存储 人工智能 关系型数据库
阿里云AI产品与云产品最新组合套餐:Token Plan、AI coding及云服务器和建站等组合优惠价
阿里云推出全新“算力+模型+应用”一站式云与AI组合套餐活动,覆盖从个人开发者到中大型企业的全场景需求。核心亮点为分三档定价的Token Plan订阅服务,支持Qwen3.8-Max-Preview大模型调用,错峰时段最低可享0.2折优惠。活动同步推出AI Coding、智能体部署、云电脑托管、0代码建站等十余类场景化组合,搭配99元/年的普惠云服务器、88元/年的入门数据库等经典特惠产品,还为企业提供1V1定制化AI转型方案,大幅降低了不同用户群体拥抱AI的技术门槛与采购成本。
721 111
|
20天前
|
人工智能 JSON 安全
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
阿里云AI安全产品联动防御Fastjson攻击
2634 13
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
|
6天前
|
人工智能 JSON Shell
2026AI漫剧本地全开源方案(附各个软件模型链接),8G显卡也能流畅运行
这是一套完全本地化部署的AI漫剧生成技术链路:涵盖LLM剧本分镜生成、FLUX文生图(IP-Adapter人脸锁定)、StoryDiffusion时序连贯控制、LTX-2.3唇形同步视频生成,及ComfyUI全流程调度。零云端费用,仅耗硬件算力,单集2–4小时可产出竖屏短视频,适配抖音/B站分发。
|
7天前
Qoder 一周年 × Qwen3.8-Max 正式上线,多重好礼限时领
8月3日,Qwen3.8-Max 正式上线Qoder,迎来Qoder一周年。新老用户可领800次免费调用,下单再赠2000次;夜间(22:00–08:00)调用5折;邀请好友双方得积分与调用额度。
447 1