Может ли Rundeck иметь задание, которое выполняет часть как отправку на узел, а часть как выполнение локально

Добрый вечер,

У меня работа состоит из двух частей:

  1. на удаленном сервере запустите команду
  2. После завершения на локальном сервере rundeck выполните команду scp -3

Пример работы Rundeck: (часть первая)

  1. выберите удаленный-сервер1, удаленный-сервер2 или удаленный-сервер3 (как $ {option.remoteserver})
  2. выполнить на узле (сервере) следующую команду: "dstat --output dstat.output.csv 10 1"

(часть вторая)

  • scp -3 $ {option.remoteserver}: / home / rundeck / dstat.output.csv локальный сервер: / home / rundeck / $ {option.remoteserver} _dstat.output.csv

На вкладке «узлы» я выбрал «отправку узлам». У меня проблема в том, что первая часть работает отлично, но вторая часть также отправляется на удаленный сервер, тогда как мне нужно, чтобы она выполнялась локально.

Возможно ли, чтобы первая часть была настроена как «отправка узлам», но вторая часть была установлена ​​на «выполнение локально»


person Rob Cowell    schedule 12.12.2019    source источник


Ответы (2)


Вы можете создать два задания, первое из которых указывает на удаленный узел (используя «отправку на узлы»), а второе - на локальный узел. Затем вы можете создать родительское задание, которое ссылается на эти задания, используя шаг ссылки на вакансию. Здесь у вас есть хороший пример.

Работа на удаленный узел:

    <joblist>
        <job>
            <defaultTab>summary</defaultTab>
            <description></description>
            <dispatch>
                <excludePrecedence>true</excludePrecedence>
                <keepgoing>false</keepgoing>
                <rankOrder>ascending</rankOrder>
                <successOnEmptyNodeFilter>false</successOnEmptyNodeFilter>
                <threadcount>1</threadcount>
            </dispatch>
            <executionEnabled>true</executionEnabled>
            <id>53b304fe-c68c-40ed-a5cb-e8af9de75a99</id>
            <loglevel>INFO</loglevel>
            <name>JobToNodeONE</name>
            <nodeFilterEditable>false</nodeFilterEditable>
            <nodefilters>
                <filter>name: node00</filter>
            </nodefilters>
            <nodesSelectedByDefault>true</nodesSelectedByDefault>
            <scheduleEnabled>true</scheduleEnabled>
            <sequence keepgoing='false' strategy='node-first'>
                <command>
                    <exec>uname -a</exec>
                </command>
            </sequence>
            <uuid>53b304fe-c68c-40ed-a5cb-e8af9de75a99</uuid>
        </job>
    </joblist>

Работа на локальный узел:

    <joblist>
        <job>
            <defaultTab>summary</defaultTab>
            <description></description>
            <dispatch>
                <excludePrecedence>true</excludePrecedence>
                <keepgoing>false</keepgoing>
                <rankOrder>ascending</rankOrder>
                <successOnEmptyNodeFilter>false</successOnEmptyNodeFilter>
                <threadcount>1</threadcount>
            </dispatch>
            <executionEnabled>true</executionEnabled>
            <id>b5e54476-a663-4fed-a541-c270a0295265</id>
            <loglevel>INFO</loglevel>
            <name>JobToNodeTWO</name>
            <nodeFilterEditable>false</nodeFilterEditable>
            <nodefilters>
                <filter>name: localhost</filter>
            </nodefilters>
            <nodesSelectedByDefault>true</nodesSelectedByDefault>
            <scheduleEnabled>true</scheduleEnabled>
            <sequence keepgoing='false' strategy='node-first'>
                <command>
                    <exec>uname -a</exec>
                </command>
            </sequence>
            <uuid>b5e54476-a663-4fed-a541-c270a0295265</uuid>
        </job>

Родительская работа:

    <joblist>
        <job>
            <defaultTab>summary</defaultTab>
            <description></description>
            <executionEnabled>true</executionEnabled>
            <id>858a3558-ce1f-4814-a483-3162e2ea381b</id>
            <loglevel>INFO</loglevel>
            <name>ParentJOB</name>
            <nodeFilterEditable>false</nodeFilterEditable>
            <scheduleEnabled>true</scheduleEnabled>
            <sequence keepgoing='false' strategy='node-first'>
                <command>
                    <jobref name='JobToNodeONE'>
                        <uuid>53b304fe-c68c-40ed-a5cb-e8af9de75a99</uuid>
                    </jobref>
                </command>
                <command>
                    <jobref name='JobToNodeTWO'>
                        <uuid>b5e54476-a663-4fed-a541-c270a0295265</uuid>
                    </jobref>
                </command>
            </sequence>
            <uuid>858a3558-ce1f-4814-a483-3162e2ea381b</uuid>
        </job>
    </joblist>

Кроме того, вы можете передавать значения параметров между заданиями, используя аргументы.

person MegaDrive68k    schedule 12.12.2019

Отредактируйте задание. Внизу «Шагов узла» есть опция «Локальная команда». Это будет выполняться локально, даже если предыдущий шаг был удаленной командой. Он также будет иметь доступ к стандартному набору переменных узла.

person Karl DeBisschop    schedule 17.12.2019