Mac Slave - 重启时连接到Master

时间:2014-10-16 22:20:36

标签: macos jenkins launchd master-slave

我在Windows Server 2012中运行了Jenkins master。

我有一些Windows奴隶。通过JNLP连接。这些从属服务器中还运行着一个Windows服务。 所以,即使我重新启动了Windows奴隶 - 一旦启动它们就会连接到主服务器。真棒!!

我也有一个MAC奴隶。目前通过Java Web start启动。对于mac,我需要像'Windows Service'这样的东西。我听说过'launchd' 但是当我重新启动MAC机器时,它似乎并没有自动连接到主机。这就是我需要的东西!!!

我还尝试在LaunchDaemon中将RunAtLoad设为True,将KeepAlive设为True。它根本没用。

4 个答案:

答案 0 :(得分:4)

它内置于Mac上的The Jenkins JNLP;只需将其安装为服务:

enter image description here enter image description here

答案 1 :(得分:2)

在/ Library / LaunchAgents中创建com.jenkins.slave.plist:

<?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 Master。

答案 2 :(得分:1)

你可以尝试一下jenkins-slave-osx

  

Jenkins Slave for OS X Scripts通过创建和运行Jenkins slave   OS X上的Java Web Start(JNLP)作为启动守护程序。

     

快速入门

     

bash&lt;(curl -L   https://raw.github.com/rhwood/jenkins-slave-osx/master/install.sh

答案 3 :(得分:0)

我唯一的问题是在启动期间启动launchDaemon。我不知道怎么做。最后,我通过创建launchDaemon的可执行文件并在启动期间从/etc/launchd.conf调用exe来解决这个问题。它现在很棒。