Я использую Rundeck для выполнения задания A. В задании A у меня есть глобальный фильтр журнала, который собирает данные «ключ-значение» с использованием регулярного выражения по умолчанию (RUNDECK:DATA:...
).
Я называю другое задание - Job B - которое печатает материал, начинающийся с RUNDECK: DATA: key = value. Я выполняю задание B из задания A. Почему-то глобальный фильтр журнала, который я настроил в задании A, не анализирует вывод задания B.
Я добавил тот же самый фильтр глобального журнала в задание B и убедился, что данные собираются правильно, но они недоступны в задании A, поэтому их можно использовать на следующих этапах.
Кто-нибудь знает, можно ли захватить ключ / значение из вывода другого задания? Мне удалось получить значения на этапах одного и того же задания, но не тогда, когда результат был получен в результате выполнения другого вызванного задания.
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" > tempfile.txt</exec>
</command>
<command>
<exec>echo "Value generated on temp file"</exec>
</command>
</sequence>
<uuid>ba183d3b-67d9-4499-b863-da8b7ac8aef3</uuid>
</job>
</joblist>
Похожие вопросы
Новые вопросы
rundeck
Rundeck - это инструмент автоматизации рабочего процесса с открытым исходным кодом, имеющий веб-консоль, инструменты CLI и веб-API. Написанный на Java, он позволяет автоматизировать задачи на множестве узлов.