【问题标题】:Mac Slave - connect to Master on restartMac Slave - 重新启动时连接到 Master
【发布时间】:2014-12-12 10:30:19
【问题描述】:

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

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

我也有一个 MAC 从站。目前通过 Java Web start 连接。我需要类似 Mac 的“Windows 服务”之类的东西。我听说过'launchd' 但是当我重新启动MAC机器时,它似乎没有自动连接到master。这就是我需要的!!!

我还尝试在 LaunchDaemon 中将 RunAtLoad 设置为 True,将 KeepAlive 设置为 True。一点用都没有。

【问题讨论】:

    标签: macos jenkins launchd master-slave


    【解决方案1】:

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

    【讨论】:

    • 什么!!?这是从什么时候开始的?我从来没有见过这个选项..我会尝试让你知道
    • 此方法不再适用于 macos Mojave v10.14.4
    【解决方案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。

    【讨论】:

    • 如果您的 Jenkins 安装有 SSL,则不需要 -noCertificateCheck 参数。
    • 如果您使用的用户名不是jenkins,请记住将/Users/jenkins 更改为用户的主目录。
    • 嗨 @amacleod 使用最新的 macOS 运行。使用您的所有建议进行设置,但加载 plist 时出现错误:Exception in thread "main" java.nio.file.FileSystemException: /": Read-only file system
    • 这里也一样。任何想法如何解决这个问题?谢谢!
    【解决方案3】:

    你可以试试jenkins-slave-osx

    Jenkins Slave for OS X Scripts 通过以下方式创建和运行 Jenkins 从站 在 OS X 上作为启动守护程序的 Java Web Start (JNLP)。

    快速入门

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

    【讨论】:

    • 看到这个我真的很兴奋。但它在这一步失败了。 “无法使用此 API 令牌验证 ”。我确保我输入正确。
    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2012-09-26
      • 2018-08-02
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多