Jenkins Slave连接到在Apache

时间:2017-03-01 15:12:36

标签: apache jenkins jenkins-slave

以下是我的设置:

  1. Jenkins master在服务器上运行,并假设其域名为jenkins.master.host,即直接访问Jenkins master的URL为http://jenkins.master.host:8080

  2. Apache HTTPD在不同的服务器上运行,并假设其域名为jenkins.master.proxy。 HTTPD配置为侦听端口80并代理jenkins master,即通过apache访问Jenkins master,使用URL http://jenkins.master.proxy

  3. 在“管理Jenkins”下 - > “配置系统”,Jenkins URL配置为apache httpd URL,即http://jenkins.master.proxy

  4. 在“管理Jenkins”下 - > “配置全局安全性”,从站配置为在固定TCP端口9020上运行。

  5. 在“管理Jenkins”下 - > “管理节点”,我创建了一个名为“TestSlave”的新节点。

  6. 下载JNLP以启动从属设备后,连接到主服务器的小从属代理窗口仍然停留在“正在连接到jenkins.master.proxy:9020”

  7. JNLP如下:

    <jnlp codebase="http://jenkins.master.proxy/computer/TestSlave/" spec="1.0+">
        <information>
            <title>Agent for TestSlave</title>
            <vendor>Jenkins project</vendor>
            <homepage href="https://jenkins-ci.org/"/>
        </information>
        <security>
            <all-permissions/>
        </security>
        <resources>
            <j2se version="1.7+"/>
            <jar href="http://jenkins.master.proxy/jnlpJars/remoting.jar"/>
            <property name="hudson.showWindowsServiceInstallLink" value="true"/>
        </resources>
        <application-desc main-class="hudson.remoting.jnlp.Main">
            <argument>*******************************************</argument>
            <argument>TestSlave</argument>
            <argument>-url</argument>
            <argument>http://jenkins.master.proxy/</argument>
        </application-desc>
    </jnlp>
    

    Apache HTTPD配置如下:

    <VirtualHost *:80>
        ServerName jenkins.master.proxy
        ProxyPass / http://jenkins.master.host:8080/ nocanon Keepalive=On
        ProxyPassReverse / http://jenkins.master.host:8080/
        AllowEncodedSlashes On
        ErrorLog logs/jenkins/error.log
    </VirtualHost>
    

    是否需要将一些配置放入Jenkins主服务器或apache HTTPD以使从服务器连接?小Jenkins奴隶代理窗口仍然停留在“连接到jenkins.master.proxy:9020(重试:11)”。也许我需要在apache HTTPD中添加另一个VirtualHost来侦听端口9020?我试图这样做但没有成功。

    我们将非常感谢您的想法。

    非常感谢

1 个答案:

答案 0 :(得分:1)

看一下这篇文章:Jenkins: How to configure Jenkins behind Nginx reverse proxy for JNLP slaves to connect

我通过在我的码头配置中将系统属性 hudson.TcpSlaveAgentListener.hostName 设置为 jenkins.master.host 来解决此问题。