我正在尝试组装一个系统,该系统要求在可变数量的节点中以可变顺序运行多个作业,并且有可能重复。
我试图通过对每个节点使用单个作业(请注意每个节点也运行不同的作业)来解决此问题,然后在运行时决定执行哪个作业。
但是当我完成工作时,我得到了:
"2: Workflow step executing: JobReferenceItem{label='Step 1 job, jobIdentifier='${data.DEPLOY_SYSTEM_1}', nodeStep=true}"
该变量似乎没有得到扩展。这是不可能的还是我做错了?我无法找到有关使用变量动态选择要运行的作业的任何信息
感谢您的帮助。谢谢
答案 0 :(得分:0)
是的,我在“作业参考步骤”上测试了使用数据和选项变量的调用,但无法正常工作:
<joblist>
<job>
<defaultTab>nodes</defaultTab>
<description></description>
<executionEnabled>true</executionEnabled>
<id>97979d11-6ff8-45ef-9843-8b90e4e135d1</id>
<loglevel>INFO</loglevel>
<name>JobONE</name>
<nodeFilterEditable>false</nodeFilterEditable>
<plugins />
<scheduleEnabled>true</scheduleEnabled>
<sequence keepgoing='false' strategy='node-first'>
<command>
<exec>echo "MYJOB=JobTWO"</exec>
<plugins>
<LogFilter type='key-value-data'>
<config>
<logData>true</logData>
<regex>^(MYJOB)\s*=\s*(.+)$</regex>
</config>
</LogFilter>
</plugins>
</command>
<command>
<exec>echo ${data.MYJOB}</exec>
</command>
<command>
<jobref name='${data.MYJOB}' nodeStep='true'>
<useName>true</useName>
</jobref>
</command>
</sequence>
<uuid>97979d11-6ff8-45ef-9843-8b90e4e135d1</uuid>
</job>
</joblist>
一个好的解决方法是在嵌入式脚本步骤中嵌入RD CLI命令以调用作业(使用数据或选项),如下所示:
<joblist>
<job>
<defaultTab>nodes</defaultTab>
<description></description>
<executionEnabled>true</executionEnabled>
<id>97979d11-6ff8-45ef-9843-8b90e4e135d1</id>
<loglevel>INFO</loglevel>
<name>JobONE</name>
<nodeFilterEditable>false</nodeFilterEditable>
<plugins />
<scheduleEnabled>true</scheduleEnabled>
<sequence keepgoing='false' strategy='node-first'>
<command>
<exec>echo "MYJOB=JobTWO"</exec>
<plugins>
<LogFilter type='key-value-data'>
<config>
<logData>true</logData>
<regex>^(MYJOB)\s*=\s*(.+)$</regex>
</config>
</LogFilter>
</plugins>
</command>
<command>
<exec>echo ${data.MYJOB}</exec>
</command>
<command>
<script><![CDATA[# call another job, more info: rd run help
rd run -j @data.MYJOB@ -p ProjectLOCAL]]></script>
<scriptargs />
</command>
</sequence>
<uuid>97979d11-6ff8-45ef-9843-8b90e4e135d1</uuid>
</job>
</joblist>
使用规则集(仅适用于Rundeck Enterprise),您可以根据某个变量的值(look)来决定方法。
此外,您可以在official GitHub space中建议该问题。