Mac Slave - подключитесь к мастеру при перезапуске

У меня есть мастер Jenkins, работающий на Windows Server 2012.

У меня есть оконные рабы. Подключен через JNLP. На этих ведомых устройствах также работает служба Windows. Таким образом, даже если я перезапущу подчиненные устройства Windows - они подключатся к главному серверу, как только он будет запущен. Потрясающий!!

Еще у меня есть подчиненный MAC. В настоящее время подключаюсь через Java Web start. Мне нужно что-то вроде «Служба Windows» для Mac. Я слышал о «launchd», но, похоже, он не подключается к мастеру автоматически, когда я перезагружаю MAC-машину. Это то что мне нужно !!!

Я также пробовал использовать RunAtLoad как True, KeepAlive как True в LaunchDaemon. Это совсем не помогает.


person KitKarson    schedule 16.10.2014    source источник


Ответы (4)


Он встроен в Jenkins JNLP на Mac; просто установите его как службу:

введите описание изображения здесь введите описание изображения здесь

person Rémy Virin    schedule 26.03.2015
comment
Что!!? Это когда? Я никогда не видел такой возможности .. Я попробую и дам тебе знать - person KitKarson; 03.04.2015
comment
этот метод больше не работает в macos Mojave v10.14.4. - person Andrew Lam; 18.05.2019

Создайте com.jenkins.slave.plist в / Library / LaunchAgents:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>com.jenkins.slave</string>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/bin/java</string>
                <string>-jar</string>
                <string>/Users/jenkins/slave.jar</string>
                <string>-jnlpUrl</string>
                <string>https://YOUR_JENKINS/computer/mac-os-x/slave-agent.jnlp</string>
                <string>-noCertificateCheck</string>
                <string>-secret</string>
                <string>YOUR_SECRET</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>KeepAlive</key>
        <true/>
        <key>StandardOutPath</key>
        <string>/Users/jenkins/stdout.log</string>
        <key>StandardErrorPath</key>
        <string>/Users/jenkins/error.log</string>
</dict>
</plist>

Затем обновите учетные данные YOUR_JENKINS и YOUR_SECRET и загрузите службу через:

sudo launchctl load /Library/LaunchAgents/com.jenkins.slave.plist

При следующем входе в систему ваше ведомое устройство автоматически подключится к мастеру Jenkins.

person Alexandru Bantiuc    schedule 03.05.2017
comment
Аргумент -noCertificateCheck не требуется, если в вашей установке Jenkins есть SSL. - person amacleod; 18.08.2020
comment
Также не забудьте изменить /Users/jenkins на домашний каталог вашего пользователя, если вы используете что-то другое, кроме jenkins в качестве имени пользователя. - person amacleod; 18.08.2020
comment
привет @amacleod работает с последними версиями macos. Настройка со всеми вашими предложениями, но при загрузке списка я получил ошибку: Exception in thread "main" java.nio.file.FileSystemException: /": Read-only file system - person Lê Khánh Vinh; 09.01.2021
comment
то же самое. Есть идеи, как это исправить? Спасибо! - person AndyB; 11.02.2021

Вы можете попробовать jenkins-slave-osx

Подчиненное устройство Jenkins для сценариев OS X для создания и запуска ведомого устройства Jenkins через Java Web Start (JNLP) в OS X в качестве демона запуска.

Быстрый старт

bash ‹(curl -L https://raw.github.com/rhwood/jenkins-slave-osx/master/install.sh)

person KeepCalmAndCarryOn    schedule 16.10.2014
comment
Я был очень взволнован, увидев это. Но не на шагу. Невозможно аутентифицировать ‹user› с этим токеном API. Я удостоверился, что набираю правильно. - person KitKarson; 17.10.2014

Моя единственная проблема заключалась в том, чтобы запустить launchDaemon во время запуска. Я не знал, как это делать. Наконец я понял это, создав исполняемый файл для launchDaemon и вызывая exe из /etc/launchd.conf во время запуска. Теперь он отлично работает.

person KitKarson    schedule 21.10.2014