Rundeck - 根据 sql 查询结果可选择执行步骤

问题描述

我对 rundeck 很陌生,我被要求插入一些东西(一个步骤或者我真的不知道是什么)来检查作业的数据是否是最新的(一个 sql 脚本可以为我提供一个日期或参数)。根据此条件,作业可以启动或不启动。 我已经在网上冲浪了几天,但没有找到任何答案。你能帮我吗?

解决方法

在 Rundeck Enterprise 上,您可以使用 Ruleset Workflow Strategy 根据从 SQL 查询生成的选项或数据值(检查与数据值相关的 this 示例)来决定是否运行某个作业或步骤.

社区版本的最佳方法是使用 inline-script 步骤调用包含您使用 RD-CLIRundeck API(使用 cURL)的步骤的作业。查看 this 示例,了解如何使用 RD-CLI 从内联脚本步骤调用作业。

您可以编写如下脚本:

if [ @data.your_data_value@ = 'available' ]; then
    rd run -p YourProjectName -j YourJobToCall
else
    echo "Not available,nothing to do"
fi

当然,如果您不想调用其他作业,您可以创建一个包含所有逻辑的内联脚本步骤,例如:

if [ @data.your_data_value@ = 'available' ]; then
    # step logic
else
    echo "Not available,nothing to do"
fi

因此,我们的想法是创建第一步,使用 SQL 调用生成数据(也检查 this),然后第二步获取该数据并决定内联脚本步骤。