如何跳过失败的Rundeck作业?

时间:2019-07-10 15:17:55

标签: workflow job-scheduling rundeck

我有一个Rundeck作业,可以使用作为本地命令运行的自定义脚本来更新服务器。如果由于服务器上正在运行作业而需要推迟服务器更新,则定制本地命令将返回特殊的返回码。如果某个节点发生故障,则Rundeck作业被配置为使该步骤失败而不在任何其余节点上运行。

如果该节点返回特殊返回码,我想跳过一个节点并继续下一个节点。

我尝试使用类似以下代码的错误处理程序进行实验:

/bin/sh -c 'if test "${result.resultCode}" = "125"; then exit 0; fi; exit "${result.resultCode}"'

简化后的作业配置如下:

- defaultTab: summary
  executionEnabled: true
  loglevel: INFO
  multipleExecutions: true
  name: Server update
  nodeFilterEditable: true
  nodefilters:
    dispatch:
      excludePrecedence: true
      keepgoing: false
      successOnEmptyNodeFilter: false
      threadcount: ${option.parallelity}
    filter: ''
  nodesSelectedByDefault: true
  notification:
    onfailure:
      email:
        recipients: me@example.com
        subject: 'rundeck: server update failed'
    onsuccess:
      email:
        recipients: me@example.com
        subject: 'rundeck: server update finished'
  notifyAvgDurationThreshold: null
  options:
  - description: Maximum number of server updates in parallel.
    name: parallelity
    regex: ^[0-9]+$
    required: true
    value: '1'
  scheduleEnabled: true
  sequence:
    commands:
    - configuration:
        command: /usr/bin/custom-server-update "${node.name}"
      nodeStep: true
      type: localexec
    keepgoing: false
    strategy: parallel

1 个答案:

答案 0 :(得分:0)

在创建或编辑作业时,向下滚动并进行以下设置:如果节点发生故障->在步骤失败之前,请继续在其余所有节点上运行。