Rundeck-参考作业:$ {node.name}作为节点过滤器

时间:2020-06-30 12:40:44

标签: rundeck

在Rundeck(3.2.6-20200427)上,我创建了两个作业,分别称为testjob和subjob。

testjob应该将参考工作称为子工作。

在子作业的工作流程中,我添加了一个任务“作业参考”并选择了另一个作业。在那里,我将“运行方式”设置为“节点步骤”。参见屏幕截图testjob-task1。

enter image description here

然后我输入“ $ {node.name}”作为“节点”过滤器。

enter image description here

不幸的是,如果我运行testjob,则会出错:

1. generic/subjob: No nodes matched for the filters: NodeSet{includes={name=${node.name}, dominant=false, }}

我错了什么?我没有在工作流程中添加选项,因为我阅读过,如果作业作为“节点步骤”运行,则不需要。我错了吗?我也想知道,为什么错误日志不像'... NodeSet {includes = node01,dominant = false,}}'一样显示,似乎变量没有在那里正确设置。

1 个答案:

答案 0 :(得分:0)

直接测试一项作业${node.name}不能作为过滤器,您可以使用与模型源中任何节点匹配的某些选项(或字符串),如以下示例(使用某些父项的父子工作流程)选项示例)。

父母工作:

<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>

儿童工作:

<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>