Удаленный запуск командного файла с помощью Hudson - PullRequest
3 голосов
/ 05 октября 2010

Какой самый простой способ запланировать запуск командного файла на удаленном компьютере с помощью Hudson (последняя и лучшая версия)? Я изучал настройки главного и подчиненного. Я создал тупого ведомого, но не уверен, какими должны быть параметры, чтобы я мог запустить пакетный файл на удаленном ведомом компьютере.

По сути, я пытаюсь последовательно запустить 2 разных пакетных файла на двух разных удаленных компьютерах, запущенных с моего компьютера (мастера). Пошаговое руководство на веб-сайте Hudson является мертвой ссылкой. Есть похожие вопросы, опубликованные на SO, но у меня не совсем получается, когда я использую параметры, которые они упоминают. Если кто-то сделал что-то подобное, пожалуйста, предложите способы сделать эту работу. (Я знаю, как настроить задания и добавить шаг для запуска командного файла и т. Д., Что у меня возникают проблемы при настройке, это выполняется на удаленной машине с использованием встроенных функций hudson)

UPDATE

Спасибо всем за предложения. Быстрое обновление по этому вопросу: То, что я хотел сделать, частично работает, ниже приведены шаги, которые нужно выполнить, чтобы добраться до него -

  1. Создан новый узел из «Управление узлами» -> «Новый узел» -> установить количество исполнителей равным 1, для удаленного корня FS установлено значение «/ var / hudson», для метода запуска используется JNLP, задается имя_службы и сохраняется. 1013 *

  2. Как только ведомое устройство было настроено (с главной машины), я вошел на ведомую физическую машину, я загрузил _slave.jar из http://masterserver:port/jnlpJars/slave.jar, и запустил следующее из командной строки в месте загрузки: > java -jar _slave.jar -jnlpUrl http://masterserver:port/computer/slavename/slave-agent.jnlp. Соединение успешно установлено.

  3. Установлен флажок «Ограничить, где этот проект может быть запущен» в конфигурации основного задания, и установите параметр в качестве slavename.

  4. Установлен флажок «Добавить шаг сборки» для добавления сценария моего пакетного задания

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

Ответы [ 3 ]

1 голос
/ 05 октября 2010

Это довольно просто и прямо. Предположим, у вас уже работает подчиненный. Затем вы настраиваете задание так, как будто вы находитесь локально в целевом окне. Параметр для Restrict where this project can be run должен быть тем узлом, который вы хотите включить. Это все для конфигурации задания.

Для конфигурации подчиненного устройства прочитайте следующие страницы.

  1. Установка Hudson в качестве службы Windows
  2. Распределенные сборки

В Windows я предпочитаю запускать ведомое устройство как службу и разрешать удаленному компьютеру управлять запуском и выключением подчиненного устройства. Единственный недостаток в этом заключается в том, что вам нужно обновлять клиент каждый раз, когда вы обновляете сервер. Просто получите новый client.jar с сервера, после обновления и поместите его на ведомое устройство. Затем перезапустите раб, и все готово.

У меня были проблемы с использованием установки в качестве опции сервиса для ведомого, хотя я делал это в качестве локального администратора. Затем я использовал srvany, чтобы обернуть банку в сервис. Вот блог об этом. Команду, которую нужно обернуть, вы получите от своего сервера Hudson со страницы ведомого. Чтобы все это работало, вы должны настроить подчиненное управление как jnlp.

Если на вашей целевой машине установлен ssh-сервер, вы можете использовать настройки ssl-slave. Эти работы для меня, как шарм. Я использую их с моими рабами Unix. До сих пор опция ssl с unix была меньше хлопот, чем клиенты службы Windows.

1 голос
/ 05 октября 2010

У меня были похожие проблемы с настройкой ведомого и я написал это сообщение в блоге - я работал на Linux, а не на Windows, но, надеюсь, это поможет.

0 голосов
/ 05 октября 2010

Я не знаю, как использовать встроенные функции hudson для этой работы, но в одной из сборок моего проекта я запускаю командный файл, который, в свою очередь, использует PSTools для запуска задания на удаленном компьютере.сервер.Я обнаружил, что инструменты PS чрезвычайно просты в использовании - загружайте, распаковывайте и запускайте команду с правильными параметрами, поэтому я решил использовать это.

...