jobs - Rundeck 能否有一个作业将一部分执行为“分派到节点”,一部分执行为“本地执行”
问题描述
晚上好,
我的工作有两个部分:
- 在远程服务器上运行命令
- 完成后,在本地 rundeck 服务器上运行 scp -3 命令
示例 Rundeck 工作:(第一部分)
- 从 remote-server1、remote-server2 或 remote-server3 中选择(如 ${option.remoteserver} )
- 在节点(服务器)上执行以下命令:“dstat --output dstat.output.csv 10 1”
(第二部分)
- scp -3 ${option.remoteserver}:/home/rundeck/dstat.output.csv 本地服务器:/home/rundeck/${option.remoteserver}_dstat.output.csv
在“节点”选项卡中,我选择了“发送到节点”。我遇到的问题是第一部分完美运行,但第二部分也发送到远程服务器,而我需要“在本地执行”
是否可以将第一部分设置为“分派到节点”但将第二部分设置为“本地执行”
解决方案
您可以创建两个作业,第一个指向远程节点(使用“调度到节点”),第二个指向本地节点。然后,您可以使用作业引用步骤创建引用这些作业的父作业。这里有一个很好的例子。
远程节点的作业:
<joblist>
<job>
<defaultTab>summary</defaultTab>
<description></description>
<dispatch>
<excludePrecedence>true</excludePrecedence>
<keepgoing>false</keepgoing>
<rankOrder>ascending</rankOrder>
<successOnEmptyNodeFilter>false</successOnEmptyNodeFilter>
<threadcount>1</threadcount>
</dispatch>
<executionEnabled>true</executionEnabled>
<id>53b304fe-c68c-40ed-a5cb-e8af9de75a99</id>
<loglevel>INFO</loglevel>
<name>JobToNodeONE</name>
<nodeFilterEditable>false</nodeFilterEditable>
<nodefilters>
<filter>name: node00</filter>
</nodefilters>
<nodesSelectedByDefault>true</nodesSelectedByDefault>
<scheduleEnabled>true</scheduleEnabled>
<sequence keepgoing='false' strategy='node-first'>
<command>
<exec>uname -a</exec>
</command>
</sequence>
<uuid>53b304fe-c68c-40ed-a5cb-e8af9de75a99</uuid>
</job>
</joblist>
作业到本地节点:
<joblist>
<job>
<defaultTab>summary</defaultTab>
<description></description>
<dispatch>
<excludePrecedence>true</excludePrecedence>
<keepgoing>false</keepgoing>
<rankOrder>ascending</rankOrder>
<successOnEmptyNodeFilter>false</successOnEmptyNodeFilter>
<threadcount>1</threadcount>
</dispatch>
<executionEnabled>true</executionEnabled>
<id>b5e54476-a663-4fed-a541-c270a0295265</id>
<loglevel>INFO</loglevel>
<name>JobToNodeTWO</name>
<nodeFilterEditable>false</nodeFilterEditable>
<nodefilters>
<filter>name: localhost</filter>
</nodefilters>
<nodesSelectedByDefault>true</nodesSelectedByDefault>
<scheduleEnabled>true</scheduleEnabled>
<sequence keepgoing='false' strategy='node-first'>
<command>
<exec>uname -a</exec>
</command>
</sequence>
<uuid>b5e54476-a663-4fed-a541-c270a0295265</uuid>
</job>
家长工作:
<joblist>
<job>
<defaultTab>summary</defaultTab>
<description></description>
<executionEnabled>true</executionEnabled>
<id>858a3558-ce1f-4814-a483-3162e2ea381b</id>
<loglevel>INFO</loglevel>
<name>ParentJOB</name>
<nodeFilterEditable>false</nodeFilterEditable>
<scheduleEnabled>true</scheduleEnabled>
<sequence keepgoing='false' strategy='node-first'>
<command>
<jobref name='JobToNodeONE'>
<uuid>53b304fe-c68c-40ed-a5cb-e8af9de75a99</uuid>
</jobref>
</command>
<command>
<jobref name='JobToNodeTWO'>
<uuid>b5e54476-a663-4fed-a541-c270a0295265</uuid>
</jobref>
</command>
</sequence>
<uuid>858a3558-ce1f-4814-a483-3162e2ea381b</uuid>
</job>
</joblist>
此外,您可以使用参数在作业之间传递选项值。
推荐阅读
- discord - 试图制作一个机器人来计算语音频道中的成员
- python-3.x - 比较 2 个相同大小的元组列表:比较和交换
- python - Plotly:如何针对多个其他时间序列显示一个变量的回归线?
- c# - 用于控制范围验证器或文本框最大输入双精度的复选框
- swift - SwiftUI 箭头快捷方式在 iPad 上不起作用
- c++ - 如果用户键入无效值,为什么从 cin 读取的这段代码会无限递归?
- java - 选择下一个值 firebase android
- html - Jquery 不生成 html
- javascript - 对登录不起作用的 onChange 函数做出反应
- spring-boot - 违反了获取 JPA 错误完整性约束 (FK_XXXXX) - 未找到父键