Rundeck作业可以顺序执行吗?

时间:2019-12-20 00:25:40

标签: rundeck control-m

我正在将客户端从Control-M迁移到更现代的解决方案。客户端正在AWS中运行工作负载,并且一直在考虑使用Rundeck代替Control-M。

仅当先前的作业成功终止时,control-m作业才依次运行(一个接一个)。

一些作业并行运行(一个或多个并行作业没有相关的“ child” 作业),但是几乎所有作业都是按顺序运行。

rundeck是否支持按顺序运行作业?如何实现?

编辑1:客户端有500多个作业,每个作业有一个命令(shell)。目标节点是在同一VPC中配置了ssh公钥authn的ec2实例。

1 个答案:

答案 0 :(得分:0)

您可以设置作业策略,然后为“创建或编辑作业”进入“工作流程”标签>“策略=顺序”,选中this

您对策略herehere有完整的解释。

编辑2:我留下一个示例,重点介绍使用Job Reference Step的工作。

职位A

    <joblist>
      <job>
        <defaultTab>nodes</defaultTab>
        <description></description>
        <executionEnabled>true</executionEnabled>
        <id>7e85b6ff-4813-4f94-85f2-2b91ff359fd4</id>
        <loglevel>INFO</loglevel>
        <name>JobA</name>
        <nodeFilterEditable>false</nodeFilterEditable>
        <scheduleEnabled>true</scheduleEnabled>
        <sequence keepgoing='false' strategy='node-first'>
          <command>
            <exec>sleep 2; echo "i am the job a"</exec>
          </command>
        </sequence>
        <uuid>7e85b6ff-4813-4f94-85f2-2b91ff359fd4</uuid>
      </job>
    </joblist>

工作B

    <joblist>
      <job>
        <defaultTab>nodes</defaultTab>
        <description></description>
        <executionEnabled>true</executionEnabled>
        <id>859788d6-1fef-4467-8ce9-bc34ef6735e2</id>
        <loglevel>INFO</loglevel>
        <name>JobB</name>
        <nodeFilterEditable>false</nodeFilterEditable>
        <scheduleEnabled>true</scheduleEnabled>
        <sequence keepgoing='false' strategy='node-first'>
          <command>
            <exec>sleep 2; echo "i am the job b"</exec>
          </command>
        </sequence>
        <uuid>859788d6-1fef-4467-8ce9-bc34ef6735e2</uuid>
      </job>
    </joblist>

工作C

    <joblist>
      <job>
        <defaultTab>nodes</defaultTab>
        <description></description>
        <executionEnabled>true</executionEnabled>
        <id>458d13d1-7436-4d7e-b7a2-382a5bea449f</id>
        <loglevel>INFO</loglevel>
        <name>JobC</name>
        <nodeFilterEditable>false</nodeFilterEditable>
        <scheduleEnabled>true</scheduleEnabled>
        <sequence keepgoing='false' strategy='node-first'>
          <command>
            <exec>sleep 2; echo "i am the job c"</exec>
          </command>
        </sequence>
        <uuid>458d13d1-7436-4d7e-b7a2-382a5bea449f</uuid>
      </job>
    </joblist>

具有“作业参考步骤”的父作业:

    <joblist>
      <job>
        <defaultTab>nodes</defaultTab>
        <description></description>
        <executionEnabled>true</executionEnabled>
        <id>af4b4937-f4c2-4d73-ba8e-0ccc50bc6479</id>
        <loglevel>INFO</loglevel>
        <name>ParentJob</name>
        <nodeFilterEditable>false</nodeFilterEditable>
        <scheduleEnabled>true</scheduleEnabled>
        <sequence keepgoing='false' strategy='sequential'>
          <command>
            <jobref name='JobA' nodeStep='true'>
              <uuid>7e85b6ff-4813-4f94-85f2-2b91ff359fd4</uuid>
            </jobref>
          </command>
          <command>
            <jobref name='JobB' nodeStep='true'>
              <uuid>859788d6-1fef-4467-8ce9-bc34ef6735e2</uuid>
            </jobref>
          </command>
          <command>
            <jobref name='JobC' nodeStep='true'>
              <uuid>458d13d1-7436-4d7e-b7a2-382a5bea449f</uuid>
            </jobref>
          </command>
        </sequence>
        <uuid>af4b4937-f4c2-4d73-ba8e-0ccc50bc6479</uuid>
      </job>
    </joblist>

例如,如果任何作业失败,则执行停止。对于Rundeck 3.2.0 Enterprise,您可以使用Job Resume功能在失败的步骤重新执行(仅适用于顺序策略)。