Rundeck - 参考工作:${node.name} 作为节点过滤器
Rundeck - Reference Job: ${node.name} as Node filter
在 运行deck (3.2.6-20200427) 上,我创建了两个名为 testjob 和 subjob 的作业。
测试作业应调用参考作业子作业。
在子作业的工作流程中,我添加了一个任务“作业参考”并选择了另一个作业。在那里我将“运行 as a”设置为“Node Step”。请参阅屏幕截图 testjob-task1。
然后我输入“${node.name}”作为节点过滤器。
不幸的是,如果我 运行 testjob,然后我得到错误:
1. generic/subjob: No nodes matched for the filters: NodeSet{includes={name=${node.name}, dominant=false, }}
我做错了什么?我没有在工作流程中添加选项,因为我读过,如果作业是 运行 作为节点步骤,则不需要。我错了吗?另外我想知道,为什么错误日志没有像'...NodeSet{includes=node01, dominant=false, }}' 那样告诉我,似乎那里的变量设置不正确。
直接使用一个作业进行测试${node.name}
不能用作过滤器,您可以使用一些与模型源中的任何节点匹配的选项(或字符串),如下例(parent-child 工作流使用一些选项示例)。
Parent 职位:
<joblist>
<job>
<context>
<options preserveOrder='true'>
<option name='optparent' value='node00' />
</options>
</context>
<defaultTab>nodes</defaultTab>
<description></description>
<executionEnabled>true</executionEnabled>
<id>3f94993d-665c-45da-8233-f95c0f69f665</id>
<loglevel>INFO</loglevel>
<name>Parent</name>
<nodeFilterEditable>false</nodeFilterEditable>
<plugins />
<scheduleEnabled>true</scheduleEnabled>
<sequence keepgoing='false' strategy='node-first'>
<command>
<jobref name='Child' nodeStep='true'>
<arg line='-mynodes ${option.optparent}' />
<uuid>badd942a-f4e7-41de-9588-1b5d255e34d8</uuid>
</jobref>
</command>
</sequence>
<uuid>3f94993d-665c-45da-8233-f95c0f69f665</uuid>
</job>
</joblist>
Child 职位:
<joblist>
<job>
<context>
<options preserveOrder='true'>
<option name='mynodes' value='node00' />
</options>
</context>
<defaultTab>nodes</defaultTab>
<description></description>
<dispatch>
<excludePrecedence>true</excludePrecedence>
<keepgoing>false</keepgoing>
<rankOrder>ascending</rankOrder>
<successOnEmptyNodeFilter>false</successOnEmptyNodeFilter>
<threadcount>1</threadcount>
</dispatch>
<executionEnabled>true</executionEnabled>
<id>badd942a-f4e7-41de-9588-1b5d255e34d8</id>
<loglevel>INFO</loglevel>
<name>Child</name>
<nodeFilterEditable>false</nodeFilterEditable>
<nodefilters>
<filter>${option.mynodes}</filter>
</nodefilters>
<nodesSelectedByDefault>true</nodesSelectedByDefault>
<plugins />
<scheduleEnabled>true</scheduleEnabled>
<sequence keepgoing='false' strategy='node-first'>
<command>
<exec>echo "hi"</exec>
</command>
</sequence>
<uuid>badd942a-f4e7-41de-9588-1b5d255e34d8</uuid>
</job>
</joblist>
在 运行deck (3.2.6-20200427) 上,我创建了两个名为 testjob 和 subjob 的作业。
测试作业应调用参考作业子作业。
在子作业的工作流程中,我添加了一个任务“作业参考”并选择了另一个作业。在那里我将“运行 as a”设置为“Node Step”。请参阅屏幕截图 testjob-task1。
然后我输入“${node.name}”作为节点过滤器。
不幸的是,如果我 运行 testjob,然后我得到错误:
1. generic/subjob: No nodes matched for the filters: NodeSet{includes={name=${node.name}, dominant=false, }}
我做错了什么?我没有在工作流程中添加选项,因为我读过,如果作业是 运行 作为节点步骤,则不需要。我错了吗?另外我想知道,为什么错误日志没有像'...NodeSet{includes=node01, dominant=false, }}' 那样告诉我,似乎那里的变量设置不正确。
直接使用一个作业进行测试${node.name}
不能用作过滤器,您可以使用一些与模型源中的任何节点匹配的选项(或字符串),如下例(parent-child 工作流使用一些选项示例)。
Parent 职位:
<joblist>
<job>
<context>
<options preserveOrder='true'>
<option name='optparent' value='node00' />
</options>
</context>
<defaultTab>nodes</defaultTab>
<description></description>
<executionEnabled>true</executionEnabled>
<id>3f94993d-665c-45da-8233-f95c0f69f665</id>
<loglevel>INFO</loglevel>
<name>Parent</name>
<nodeFilterEditable>false</nodeFilterEditable>
<plugins />
<scheduleEnabled>true</scheduleEnabled>
<sequence keepgoing='false' strategy='node-first'>
<command>
<jobref name='Child' nodeStep='true'>
<arg line='-mynodes ${option.optparent}' />
<uuid>badd942a-f4e7-41de-9588-1b5d255e34d8</uuid>
</jobref>
</command>
</sequence>
<uuid>3f94993d-665c-45da-8233-f95c0f69f665</uuid>
</job>
</joblist>
Child 职位:
<joblist>
<job>
<context>
<options preserveOrder='true'>
<option name='mynodes' value='node00' />
</options>
</context>
<defaultTab>nodes</defaultTab>
<description></description>
<dispatch>
<excludePrecedence>true</excludePrecedence>
<keepgoing>false</keepgoing>
<rankOrder>ascending</rankOrder>
<successOnEmptyNodeFilter>false</successOnEmptyNodeFilter>
<threadcount>1</threadcount>
</dispatch>
<executionEnabled>true</executionEnabled>
<id>badd942a-f4e7-41de-9588-1b5d255e34d8</id>
<loglevel>INFO</loglevel>
<name>Child</name>
<nodeFilterEditable>false</nodeFilterEditable>
<nodefilters>
<filter>${option.mynodes}</filter>
</nodefilters>
<nodesSelectedByDefault>true</nodesSelectedByDefault>
<plugins />
<scheduleEnabled>true</scheduleEnabled>
<sequence keepgoing='false' strategy='node-first'>
<command>
<exec>echo "hi"</exec>
</command>
</sequence>
<uuid>badd942a-f4e7-41de-9588-1b5d255e34d8</uuid>
</job>
</joblist>