繁体   English   中英

rundeck 将作业(步骤)一的输出传递到作业(步骤)二

[英]rundeck pass output from job(step) one to job(step) two

在 rundeck 中,我有两个选择,selection1 和 selection2,它们将分别在 node1 和 node2 上执行。 Slection2 的输入来自选择的输出。 我怎样才能做到? 有两个工作或两个步骤? 以及如何传递参数。

您可以使用Job Reference Steparguments在作业之间传递选项。 我留下了两个作业的示例:JobA 和 JobB,JobA 只是打印一个选项,而 JobB 调用 JobA 并通过参数将它们的选项传递给 JobA 选项。

工作 A:

<joblist>
    <job>
        <context>
            <options preserveOrder="true">
                <option name="opta" />
            </options>
        </context>
        <defaultTab>nodes</defaultTab>
        <description />
        <executionEnabled>true</executionEnabled>
        <id>6d64bd33-71de-4d20-8bcd-c65785603b23</id>
        <loglevel>INFO</loglevel>
        <name>JobA</name>
        <nodeFilterEditable>false</nodeFilterEditable>
        <scheduleEnabled>true</scheduleEnabled>
        <sequence keepgoing="false" strategy="node-first">
            <command>
                <exec>echo ${option.opta}</exec>
            </command>
        </sequence>
        <uuid>6d64bd33-71de-4d20-8bcd-c65785603b23</uuid>
    </job>
</joblist>

工作乙:

<joblist>
    <job>
        <context>
            <options preserveOrder="true">
                <option name="optb" />
            </options>
        </context>
        <defaultTab>nodes</defaultTab>
        <description />
        <executionEnabled>true</executionEnabled>
        <id>22d0e6cc-e0f3-48e5-b8a5-3007e448ae18</id>
        <loglevel>INFO</loglevel>
        <name>JobB</name>
        <nodeFilterEditable>false</nodeFilterEditable>
        <scheduleEnabled>true</scheduleEnabled>
        <sequence keepgoing="false" strategy="node-first">
            <command>
                <jobref name="JobA" nodeStep="true">
                    <arg line="-opta ${option.optb}" />
                    <uuid>6d64bd33-71de-4d20-8bcd-c65785603b23</uuid>
                </jobref>
            </command>
        </sequence>
        <uuid>22d0e6cc-e0f3-48e5-b8a5-3007e448ae18</uuid>
    </job>
</joblist>

此外,您可以捕获一些输出并使用作业之间的参数传递此数据。 我留下另一个例子:

作业 A(只需打印一个选项):

<joblist>
    <job>
        <context>
            <options preserveOrder="true">
                <option name="opta" />
            </options>
        </context>
        <defaultTab>nodes</defaultTab>
        <description />
        <executionEnabled>true</executionEnabled>
        <id>6d64bd33-71de-4d20-8bcd-c65785603b23</id>
        <loglevel>INFO</loglevel>
        <name>JobA</name>
        <nodeFilterEditable>false</nodeFilterEditable>
        <scheduleEnabled>true</scheduleEnabled>
        <sequence keepgoing="false" strategy="node-first">
            <command>
                <exec>echo ${option.opta}</exec>
            </command>
        </sequence>
        <uuid>6d64bd33-71de-4d20-8bcd-c65785603b23</uuid>
    </job>
</joblist>

作业 B(它生成数据,存储在${data.USER}变量中并调用 JobA 以使用作业参考步骤将该变量作为参数传递):

<joblist>
    <job>
        <defaultTab>nodes</defaultTab>
        <description>Regex and data passing demo.</description>
        <executionEnabled>true</executionEnabled>
        <id>a0daf1e3-e918-43dc-b232-bc46a7a287b6</id>
        <loglevel>INFO</loglevel>
        <name>Regex</name>
        <nodeFilterEditable>false</nodeFilterEditable>
        <scheduleEnabled>true</scheduleEnabled>
        <sequence keepgoing="false" strategy="node-first">
            <command>
                <exec>env</exec>
            </command>
            <command>
                <jobref name="JobA" nodeStep="true">
                    <arg line="-opta ${data.USER}" />
                    <uuid>6d64bd33-71de-4d20-8bcd-c65785603b23</uuid>
                </jobref>
            </command>
            <pluginConfig>
                <LogFilter type="key-value-data">
                    <config>
                        <logData>true</logData>
                        <regex>^(USER)\s*=\s*(.+)$</regex>
                    </config>
                </LogFilter>
            </pluginConfig>
        </sequence>
        <uuid>a0daf1e3-e918-43dc-b232-bc46a7a287b6</uuid>
    </job>
</joblist>

你可以在这里看到一个非常有用的例子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM