В Rundeck у меня есть ряд шагов рабочего процесса HTTP POST. Есть ли способ сохранить токен API от начального шага входа в систему до последующих запросов? Можно ли это как-то сделать с помощью фильтров журналов?
Rundeck - токен API шага рабочего процесса HTTP
Ответы (1)
Вы можете использовать для этого значения данных и вызывать его, используя ${data.MYDATAKEY}
для шагов и@data.MYDATAKEY@
для встроенных скриптов.
Вот вам пример:
<joblist>
<job>
<defaultTab>nodes</defaultTab>
<description></description>
<executionEnabled>true</executionEnabled>
<id>f9b4b925-3078-4668-bdf5-79e25173a183</id>
<loglevel>INFO</loglevel>
<name>HiWorld</name>
<nodeFilterEditable>false</nodeFilterEditable>
<plugins />
<scheduleEnabled>true</scheduleEnabled>
<sequence keepgoing='false' strategy='node-first'>
<command>
<description>generate token step</description>
<fileExtension>.sh</fileExtension>
<plugins>
<LogFilter type='key-value-data'>
<config>
<logData>true</logData>
<regex>^(MYTOKEN)\s*=\s*(.+)$</regex>
</config>
</LogFilter>
</plugins>
<script><![CDATA[echo "MYTOKEN=12345"]]></script>
<scriptargs />
<scriptinterpreter>/bin/bash</scriptinterpreter>
</command>
<command>
<description>print token or use on any step</description>
<fileExtension>.sh</fileExtension>
<script><![CDATA[echo "the token is @data.MYTOKEN@"]]></script>
<scriptargs />
<scriptinterpreter>/bin/bash</scriptinterpreter>
</command>
</sequence>
<uuid>f9b4b925-3078-4668-bdf5-79e25173a183</uuid>
</job>
</joblist>
Таким образом, вы можете использовать тот же токен API, который определен в качестве параметра данных в определении вашего задания. Проверьте это, чтобы узнать больше о том, как работать.
ОБНОВЛЕНИЕ: я изменил пример определения задания, теперь создаю токен (смоделированный) и использую его позже на любом этапе рабочего процесса.
person
MegaDrive68k
schedule
27.03.2020