Я использую Rundeck для выполнения задания A. В задании A у меня есть глобальный фильтр журнала, который собирает данные «ключ-значение» с использованием регулярного выражения по умолчанию (RUNDECK:DATA:...).

Я называю другое задание - Job B - которое печатает материал, начинающийся с RUNDECK: DATA: key = value. Я выполняю задание B из задания A. Почему-то глобальный фильтр журнала, который я настроил в задании A, не анализирует вывод задания B.

Я добавил тот же самый фильтр глобального журнала в задание B и убедился, что данные собираются правильно, но они недоступны в задании A, поэтому их можно использовать на следующих этапах.

Кто-нибудь знает, можно ли захватить ключ / значение из вывода другого задания? Мне удалось получить значения на этапах одного и того же задания, но не тогда, когда результат был получен в результате выполнения другого вызванного задания.

0
francisaugusto 29 Сен 2020 в 17:33

1 ответ

Лучший ответ

Самый простой способ сделать это - проверить свой последний комментарий - использовать файл, в котором хранится значение (на JobB) и который позже обрабатывается JobA на следующих шагах. Обычно JobA запускает JobB через Шаг ссылки на вакансию < / a>, тогда JobB генерирует данные в файле, и JobA восстанавливает это значение из временного файла на следующих шагах.

JobA:

<joblist>
  <job>
    <defaultTab>nodes</defaultTab>
    <description></description>
    <executionEnabled>true</executionEnabled>
    <id>a0daf1e3-e918-43dc-b232-bc46a7a287b6</id>
    <loglevel>INFO</loglevel>
    <name>JobA</name>
    <nodeFilterEditable>false</nodeFilterEditable>
    <plugins />
    <scheduleEnabled>true</scheduleEnabled>
    <sequence keepgoing='false' strategy='node-first'>
      <command>
        <exec>echo "starting Job A"</exec>
      </command>
      <command>
        <description>Job B call that geneates the temp value</description>
        <jobref name='JobB' nodeStep='true'>
          <uuid>ba183d3b-67d9-4499-b863-da8b7ac8aef3</uuid>
        </jobref>
      </command>
      <command>
        <exec>echo "printing the Job B value"</exec>
      </command>
      <command>
        <exec>cat tempfile.txt</exec>
        <plugins>
          <LogFilter type='key-value-data'>
            <config>
              <invalidKeyPattern>\s|\$|\{|\}|\\</invalidKeyPattern>
              <logData>true</logData>
              <regex>^(mykey)\s*=\s*(.+)$</regex>
            </config>
          </LogFilter>
        </plugins>
      </command>
      <command>
        <exec>echo "the value is ${data.mykey}"</exec>
      </command>
    </sequence>
    <uuid>a0daf1e3-e918-43dc-b232-bc46a7a287b6</uuid>
  </job>
</joblist>

JobB:

<joblist>
  <job>
    <defaultTab>nodes</defaultTab>
    <description></description>
    <executionEnabled>true</executionEnabled>
    <id>ba183d3b-67d9-4499-b863-da8b7ac8aef3</id>
    <loglevel>INFO</loglevel>
    <name>JobB</name>
    <nodeFilterEditable>false</nodeFilterEditable>
    <plugins />
    <scheduleEnabled>true</scheduleEnabled>
    <sequence keepgoing='false' strategy='node-first'>
      <command>
        <exec>echo "Generating the value..."</exec>
      </command>
      <command>
        <exec>echo "mykey=myvalue" &gt; tempfile.txt</exec>
      </command>
      <command>
        <exec>echo "Value generated on temp file"</exec>
      </command>
    </sequence>
    <uuid>ba183d3b-67d9-4499-b863-da8b7ac8aef3</uuid>
  </job>
</joblist>
1
MegaDrive68k 29 Сен 2020 в 20:05