Использовать глобальную переменную рабочего процесса rundeck внутри сценария python - PullRequest
0 голосов
/ 06 мая 2020

Я создаю рабочий процесс, состоящий из двух основных этапов. - Фильтр данных значения ключа глобального журнала: используйте этот шаблон: ^ (CUSTOM-LOGFILE) = \ s * (. +) $

  • Шаг 1. bash сценарий. Выведите строку, которую мне нужно использовать на втором шаге.

  • Шаг 2. Создайте глобальную переменную, используя данные ключ / значение. Значение: $ {data.CUSTOM-LOGFILE *} группа: экспорт Имя: CUSTOM-LOGFILE

  • Шаг 3. python сценарий, который принимает все аргументы через переменные среды (RD_OPTION_ * env variales ). Например, внутри скрипта мне нужно взять значение CUSTOM-LOGFILE. Я тестировал его несколькими способами, но не могу принять содержимое CUSTOM-LOGFILE. Если я печатаю переменные env через python, я не вижу, что CUSTOM-VARIABLE определено env

Как я могу использовать глобальную переменную внутри сценария python, например, option env variable ( RD_OPTION_XXXX)?

Заранее спасибо

1 Ответ

1 голос
/ 06 мая 2020

Работает, если вы используете @data.yourdata@ или @option.youroption@. Я оставляю пример с обоими способами (используя сценарий python на Rundeck):

<joblist>
  <job>
    <context>
      <options preserveOrder='true'>
        <option name='opt1' value='Rundeck' />
      </options>
    </context>
    <defaultTab>nodes</defaultTab>
    <description></description>
    <executionEnabled>true</executionEnabled>
    <id>0966cf1c-2b38-44fd-8c82-997803c64882</id>
    <loglevel>INFO</loglevel>
    <name>HelloWorldPY</name>
    <nodeFilterEditable>false</nodeFilterEditable>
    <plugins />
    <scheduleEnabled>true</scheduleEnabled>
    <sequence keepgoing='false' strategy='node-first'>
      <command>
        <exec>echo "DATA=Rundeck"</exec>
        <plugins>
          <LogFilter type='key-value-data'>
            <config>
              <logData>true</logData>
              <regex>^(DATA)\s*=\s*(.+)$</regex>
            </config>
          </LogFilter>
        </plugins>
      </command>
      <command>
        <fileExtension>.py</fileExtension>
        <script><![CDATA[# using data
print("The data value is: @data.DATA@")

# using options
print("The option value is: @option.opt1@")]]></script>
        <scriptargs />
        <scriptinterpreter>/usr/bin/python3.8</scriptinterpreter>
      </command>
    </sequence>
    <uuid>0966cf1c-2b38-44fd-8c82-997803c64882</uuid>
  </job>
</joblist>
...