📜  rundeck 触发另一个工作 (1)

📅  最后修改于: 2023-12-03 15:04:57.470000             🧑  作者: Mango

使用 Rundeck 触发另一个工作

Rundeck 是一款用于在复杂环境中自动化运维流程的开源工具,它可以帮助用户自动化执行一系列任务,节省运维人员的时间和精力。在 Rundeck 中,我们可以创建不同的工作,把它们组合起来实现更为复杂的操作流程。本文主要介绍如何使用 Rundeck 触发另一个工作。

步骤
  1. 打开 Rundeck 管理界面,进入想要触发的工作所在的项目中。

  2. 找到要触发的工作,在工作详情页面的右上角找到“执行工作”按钮,点击进入。

  3. 在“执行工作”页面中,选择要使用的选项。常用的选项有:

    • 日志输出级别:设置工作的执行日志输出级别,有 DEBUG、INFO、WARN、ERROR 四个选项可选。
    • 时间限制:设置工作的执行时间限制,单位为分钟。
    • 环境变量:设置工作运行时使用的环境变量。
    • 节点过滤器:设置工作执行的目标节点范围。
  4. 在页面底部找到“提交”按钮,点击即可触发工作的执行。

  5. 执行完成后,在“执行工作”页面中可以查看工作的执行结果。如果工作中有输出,还可以查看输出日志。

  6. 如果需要在工作中触发另一个工作,可以在命令中添加以下命令:

    rundectl run -j <job_name> -r <run_env> -p <param1=value1> -p <param2=value2>
    

    其中:

    • -j <job_name>:指定要执行的工作的名称。
    • -r <run_env>:指定要执行的工作的运行环境名称。
    • -p <param1=value1>:指定要传递给要执行的工作的参数及其值。
  7. 执行完毕后,通过查看工作的输出日志可确认是否成功触发了另一个工作。

示例

以下示例中,我们将创建两个工作:

  • job1:一个简单的工作,执行成功后输出一条信息:“job1 executed successfully”。
  • job2:一个工作,会触发 job1 的执行,并在 job1 执行成功后输出一条信息:“job2 executed successfully”。
job1 工作
  1. 在 Rundeck 管理界面中,选中要创建工作的项目,并在该项目中创建一个新的工作。

  2. 在工作编辑页面中,填写工作的基本信息,如名称、描述等。

  3. 在“工作步骤”模块中,添加一个“Shell 脚本”步骤,并在脚本中添加以下命令:

    echo "job1 executed successfully"
    
  4. 保存工作配置并执行工作,确保工作能够正常执行,并输出了一条信息:“job1 executed successfully”。

job2 工作
  1. 在 Rundeck 管理界面中,选中要创建工作的项目,并在该项目中创建一个新的工作。

  2. 在工作编辑页面中,填写工作的基本信息,如名称、描述等。

  3. 在“工作步骤”模块中,添加一个“Shell 脚本”步骤,并在脚本中添加以下命令:

    rundectl run -j job1 -r $RD_NODE_ENVIRONMENTS -p message="job2 executed successfully"
    
  4. 保存工作配置并执行工作,确保工作能够正常执行,并输出了一条信息:“job2 executed successfully”。

  5. 在输出日志中,查找包含 “job1 executed successfully” 的信息,确认 job2 成功触发了 job1 的执行。

结论

使用 Rundeck 触发另一个工作可以帮助我们灵活组合不同的工作,实现更为复杂的自动化运维流程。在实践这一操作时,需要注意参数设置、日志信息的捕获等问题,以保证工作的顺利执行。