我正在尝试安装詹金斯在我的 Web 服务器上,这是一个在 Amazon EC2 实例上运行的 Ubuntu 13.10 服务器。我已使用以下方法重新启动 Jenkins
sudo /etc/init.d/jenkins restart
当我使用以下方式检查我的进程时
ps aux | grep jenkins
我可以看到多个项目正在运行,并具有以下描述:
jenkins 22356 0.0 0.0 20268 400 ? S 10:10 0:00 /usr/bin/daemon --name=jenkins --inherit --env=JENKINS_HOME=/var/lib/jenkins --output=/var/log/jenkins/jenkins.log --pidfile=/var/run/jenkins/jenkins.pid -- /usr/bin/java -jar /usr/share/jenkins/jenkins.war --webroot=/var/run/jenkins/war --httpPort=8080 --ajp13Port=-1 --httpListenAddress=127.0.0.1 --ajp13ListenAddress=127.0.0.1 --preferredClassLoader=java.net.URLClassLoader
jenkins 22358 5.9 5.7 1618372 97376 ? Sl 10:10 0:17 /usr/bin/java -jar /usr/share/jenkins/jenkins.war --webroot=/var/run/jenkins/war --httpPort=8080 --ajp13Port=-1 --httpListenAddress=127.0.0.1 --ajp13ListenAddress=127.0.0.1 --preferredClassLoader=java.net.URLClassLoader
服务器不允许我访问此安装,因此如果我访问
x.x.x.x:8080
我只得到一个“糟糕!Google Chrome 无法连接“页面,甚至没有 HTTP 状态 404 / 500。
我尝试检查/var/log/詹金斯/詹金斯.log,但是并不表示有什么问题,下面是重启之后的日志输出:
Running from: /usr/share/jenkins/jenkins.war
Dec 02, 2013 10:10:07 AM winstone.Logger logInternal
INFO: Beginning extraction from war file
Jenkins home directory: /var/lib/jenkins found at: EnvVars.masterEnvVars.get("JENKINS_HOME")
Dec 02, 2013 10:10:13 AM winstone.Logger logInternal
INFO: HTTP Listener started: port=8080
Dec 02, 2013 10:10:13 AM winstone.Logger logInternal
INFO: Winstone Servlet Engine v0.9.10 running: controlPort=disabled
Dec 02, 2013 10:10:14 AM jenkins.InitReactorRunner$1 onAttained
INFO: Started initialization
Dec 02, 2013 10:10:14 AM jenkins.InitReactorRunner$1 onAttained
INFO: Listed all plugins
Dec 02, 2013 10:10:14 AM jenkins.InitReactorRunner$1 onAttained
INFO: Prepared all plugins
Dec 02, 2013 10:10:14 AM jenkins.InitReactorRunner$1 onAttained
INFO: Started all plugins
Dec 02, 2013 10:10:14 AM jenkins.InitReactorRunner$1 onAttained
INFO: Augmented all extensions
Dec 02, 2013 10:10:22 AM jenkins.InitReactorRunner$1 onAttained
INFO: Loaded all jobs
Dec 02, 2013 10:10:23 AM jenkins.InitReactorRunner$1 onAttained
INFO: Completed initialization
Dec 02, 2013 10:10:23 AM hudson.TcpSlaveAgentListener <init>
INFO: JNLP slave agent listener started on TCP port 43315
Dec 02, 2013 10:10:23 AM hudson.WebAppMain$2 run
INFO: Jenkins is fully up and running
我以为我遇到了 EC2 安全组阻止端口的问题,但分配给该服务器的安全组已打开 8080 端口以用于 HTTP 入站。
我尝试的另一个检查是通过 SSH 进入服务器,并使用 Lynx 查看 Jenkins 是否确实在提供内容。我访问了它http://localhost:8080
,它按预期显示了 Jenkins 页面。
有任何想法吗?
答案1
编辑2
如果在 Amazon EC2 实例上运行 Jenkins,请尝试设置HTTP_HOST
为0.0.0.0
。您可能无法直接绑定公共接口 IP。
编辑1
请检查/etc/default/jenkins
是否直接从包中安装.deb
。
看起来 Jenkins 正在监听 localhost ( --httpListenAddress=127.0.0.1
)。在此配置中,Jenkins 不会监听来自网络接口的连接。
要解决 Ubuntu 的问题,请检查内容/etc/init/jenkins.conf
并附加到--httpListenAddress=x.x.x.x
(JENKINS_ARGS
其中x.x.x.x
是服务器的外部 IP 地址)。