首页 文章

Mac Slave - 重启时连接到Master

提问于
浏览
1

我有Jenkins master在Windows server 2012中运行 .

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

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

我还尝试在LaunchDaemon中将RunAtLoad设为True,KeepAlive为True . 它根本没有帮助 .

4 回答

  • 1

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

    enter image description here

    enter image description here

  • 4

    在/ 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 .

  • 0

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

    Jenkins Slave for OS X脚本通过Java Web Start(JNLP)在OS X上创建并运行Jenkins从站作为启动守护程序 . 快速启动bash <(curl -L https://raw.github.com/rhwood/jenkins-slave-osx/master/install.sh)

  • 2

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

相关问题