Jenkins: macOS slave агент через Java Web Start

Автор: | 15/05/2018
 

В дополнение к посту Jenkins: запуск Jenkins в Docker и подключение SSH Slave – пример добавления агента на macOS, используя Java Web Start.

Добавляем пользователя:

Проверяем наличие Java:

[simterm]

MacMini:~ user$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

[/simterm]

Переходим в Jenkins > Manage Jenkins > Manage Nodes, жмём New Node:

Настраиваем:

Переходим в Nodes, новый слейв пока оффлайн:

Переходим на страницу нового агента, тут сразу все указания по запуску:

Загружаем agent.jar, переносим его к пользователю jenkins:

[simterm]

MacMini:Downloads user$ sudo cp agent.jar ../../jenkins/
Password:

[/simterm]

Переключаемся на пользователя jenkins:

[simterm]

MacMini:Downloads user$ login jenkins
Password:
MacMini:~ jenkins$

[/simterm]

И выполняем команду, указанную в Jenkins (на запуск из jnlp-файла macOS сказала, что “неподписанный издатель, иди лесом”, но запустить можно>>>):

[simterm]

$ java -jar agent.jar -jnlpUrl https://jenkins.domain.tld/computer/macmini_s/slave-agent.jnlp -secret 137***867 -workDir "/Users/jenkins/slave" &

[/simterm]

Проверяем лог:

[simterm]

MacMini:remoting jenkins$ cat logs/remoting.log.0
May 15, 2018 3:13:29 PM hudson.remoting.jnlp.Main createEngine
INFO: Setting up slave: macmini_s
May 15, 2018 3:13:29 PM hudson.remoting.jnlp.Main$CuiListener <init>
INFO: Jenkins agent is running in headless mode.
May 15, 2018 3:13:29 PM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
INFO: Using /Users/jenkins/slave/remoting as a remoting work directory
May 15, 2018 3:13:29 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Locating server among [https://jenkins.domain.tld/]
May 15, 2018 3:13:29 PM org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver resolve
INFO: Remoting server accepts the following protocols: [JNLP4-connect, Ping]
May 15, 2018 3:13:29 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Agent discovery successful
  Agent address: jenkins.domain.tld
  Agent port:    50000
  Identity:      85:17:fd:97:c1:66:c9:d3:fd:91:ab:b1:4c:1f:90:00
May 15, 2018 3:13:29 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Handshaking
May 15, 2018 3:13:29 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to jenkins.domain.tld:50000
May 15, 2018 3:13:29 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Trying protocol: JNLP4-connect
May 15, 2018 3:13:29 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Remote identity confirmed: 85:17:fd:97:c1:66:c9:d3:fd:91:ab:b1:4c:1f:90:00
May 15, 2018 3:13:30 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connected

[/simterm]

Готово.