简体   繁体   中英

How can I skip a failing Rundeck job?

I have a Rundeck job to update servers using a custom script that is run as local command. If the server update needs to be postponed due to running jobs on it, the custom local command will return a special return code. The Rundeck job is configured to fail the step without running on any remaining nodes if a node fails.

I want to skip a node and continue with the next node if this node return the special return code.

I tried to experiment with an error handler using code like:

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

The stripped down job configuration looks like:

- 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

在创建或编辑您的作业时,向下滚动并设置:如果节点失败 -> 在该步骤失败之前继续在任何剩余节点上运行。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM