我試圖建立一個Jenkins主和一個Jenkins從屬節點,Jenkins主在Nginx反向代理的SSL終止的不同服務器上。 nginx的配置如下:Jenkins:如何配置Jenkins後面的Nginx反向代理爲JNLP奴隸連接
upstream jenkins {
server <server ip>:8080 fail_timeout=0;
}
server {
listen 443 ssl;
server_name jenkins.mydomain.com;
ssl_certificate /etc/nginx/certs/mydomain.crt;
ssl_certificate_key /etc/nginx/certs/mydomain.key;
location/{
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect http:// https://;
proxy_pass http://jenkins;
}
}
server {
listen 80;
server_name jenkins.mydomain.com;
return 301 https://$server_name$request_uri;
}
的JNLP代理的TCP端口在詹金斯大師全球安全配置設置爲50000。端口50000設置爲可從主機上的任何位置訪問。
的JNLP從站使用下面的命令啓動:
java -jar slave.jar -jnlpUrl https://jenkins.mydomain.com/computer/slave-1/slave-agent.jnlp -secret <secret>
的JNLP從屬未能連接到已配置的JNLP端口上的主:
INFO: Connecting to jenkins.mydomain.com:50000 (retrying:4)
java.net.ConnectException: Connection timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at hudson.remoting.Engine.connect(Engine.java:400)
at hudson.remoting.Engine.run(Engine.java:298)
什麼是針對所需的配置JNLP從機連接到Jenkins主機?
我使用dockerized詹金斯,與dockerized奴隸運行。 Jenkins背後是一個反向代理(使用註冊者和領事模板)。目前它可以對從端口進行硬編碼,但我們希望使其成爲動態的。在Jenkins運行之前,當我們不知道從端口時,對於配置Jenkins有任何建議嗎? – Brandon
@Brandon我不熟悉註冊者和領事模板。我想你會需要先決定一個固定的從端口,但是你可以在防火牆中打開針孔。如果你必須動態地執行它,可能會找到存儲它的jenkins設置xml文件(包括全局設置和每個從屬設置),然後拿出黑客來編輯這些文件,然後重新加載jenkins配置(或者重新啓動jenkins )所以它會生效。 – PolyTekPatrick
如果像我一樣,你不知道在哪裏設置第3步「設置系統屬性hudson.TcpSlaveAgentListener.hostName」,這是在哪裏以及如何完成的: https://wiki.jenkins.io/display/JENKINS/Features +由+系統+屬性控制+ 並且當您需要使用在Docker中運行的Jenkins master時,https://github.com/jenkinsci/docker/blob/master/README.md#passing-jvm-parameters 額外的titbit不包括此服務器值上的端口(僅限服務器LAN IP或可解析主機名)。 – Eoan