我试图建立一个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