Подтвердить что ты не робот

Как настроить новое подчиненное Jenkins

Недавно я унаследовал Java-проект Jenkins, в котором основной разработчик только что поднялся и вышел. Он развернул Jenkins WAR на экземпляр Tomcat на виртуальном сервере, и это то, что считалось "сервером сборки".

У этого сервера сборки был подчиненный, сконфигурированный для создания и развертывания на myserver.example.com, еще одном виртуальном сервере. В течение выходных сотрудники системы отказали физическому серверу, на котором жил виртуальный myserver.example.com, создав следующее исключение для любого задания Jenkins, настроенного для развертывания на этом подчиненном устройстве:

enter image description here

Когда я нажимаю ссылку " Просмотреть журнал для более подробной информации", я вижу следующий вывод консоли:

[03/18/13 08:13:31] [SSH] Opening SSH connection to myserver.example.com:22.
java.io.IOException: There was a problem while connecting to myserver.example.com:22
    at com.trilead.ssh2.Connection.connect(Connection.java:755)
    at com.trilead.ssh2.Connection.connect(Connection.java:546)
    at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:650)
    at hudson.plugins.sshslaves.SSHLauncher.launch(SSHLauncher.java:283)
    at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:200)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.net.NoRouteToHostException: No route to host
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:529)
    at com.trilead.ssh2.transport.TransportManager.establishConnection(TransportManager.java:342)
    at com.trilead.ssh2.transport.TransportManager.initialize(TransportManager.java:450)
    at com.trilead.ssh2.Connection.connect(Connection.java:699)
... 9 more
[03/18/13 08:13:34] [SSH] Connection closed.

Это имеет смысл, так как ведомый (myserver.example.com virtual) отключен. Однако, не имея реального опыта работы с Jenkins, я не уверен, какие правильные шаги предназначены для настройки мастера Jenkins для создания/развертывания этих заданий на новом подчиненном устройстве и для настройки нового подчиненного устройства. Например, мне нужно установить что-либо на новом подчиненном устройстве или выполнить какую-либо настройку/конфигурацию? Спасибо заранее!

4b9b3361

Ответ 1

Добавление раба в Дженкинса довольно просто. В основном, если вы используете slave-систему unix, вам нужен SSH-доступ к машине. Вы также должны установить плагин Jenkins SSH Slaves. После этого перейдите на вкладку Управление Jenkins на своем Мастере и выберите Управление узлами.

Затем выполняются следующие шаги:

  • Нажмите Новый Node
  • Выберите Dumb Slave и дайте ему имя (символическое, не обязательно должно быть доменное имя, которое приходит позже)
  • Нажмите "ОК" и перейдите на страницу конфигурации
  • Заполните # исполнителей количеством одновременных процессов, которые вы хотите запустить на этом node (обычно не более, чем количество выделенных ядер процессора)
  • Заполните Remote FS Root с полным путем, где вы хотите, чтобы Jenkins сохранил свои рабочие файлы.
  • При необходимости добавьте Ярлыки, если вы используете их в своей системе (во многих случаях это необязательно, но ваши проекты могут потребовать, чтобы узлы имели определенные метки в пуле исполнителей для определенных заданий)
  • Выберите Запустить ведомые агенты на машинах Unix через SSH в Launch Method (если еще не выбрано)
  • Поместите полное доменное имя в поле Хост, которое отображается в строке "Метод запуска"

Есть некоторые предположения о инструментах, которые установлены на подчиненном устройстве. Если у вас есть специализированные инструменты, вам может потребоваться установить их отдельно (или посмотреть плагины, которые обрабатывают движущиеся инструменты непосредственно перед выполнением). Однако, если ваши узлы построены вне шаблона, на котором есть все ваши инструменты сборки (java, ant и т.д.), То это все, что вам нужно сделать, чтобы все было в порядке.

Ответ 2

Я столкнулся с той же проблемой, что и вы, в моем случае это было потому, что я не установил ssh-сервер на Ubuntu.