我在Windows Server 2012中运行了Jenkins master。
我有一些Windows奴隶。通过JNLP连接。这些从属服务器中还运行着一个Windows服务。 所以,即使我重新启动了Windows奴隶 - 一旦启动它们就会连接到主服务器。真棒!!
我也有一个MAC奴隶。目前通过Java Web start启动。对于mac,我需要像'Windows Service'这样的东西。我听说过'launchd' 但是当我重新启动MAC机器时,它似乎并没有自动连接到主机。这就是我需要的东西!!!
我还尝试在LaunchDaemon中将RunAtLoad设为True,将KeepAlive设为True。它根本没用。
答案 0 :(得分:4)
它内置于Mac上的The Jenkins JNLP;只需将其安装为服务:
答案 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来解决这个问题。它现在很棒。