Назад | Перейти на главную страницу

Невозможно получить доступ к серверу Jenkins

Я пытаюсь установить Дженкинс на моем веб-сервере, который представляет собой сервер Ubuntu 13.10, работающий на экземпляре Amazon EC2. Я перезапустил Дженкинса, используя

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/jenkins/jenkins.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 и страница Дженкинса показывалась, как и ожидалось.

Любые идеи?

РЕДАКТИРОВАТЬ 2

Если Jenkins запущен на инстансе Amazon EC2, попробуйте установить HTTP_HOST к 0.0.0.0. Возможно, вы не сможете напрямую привязать IP-адрес общедоступного интерфейса.


ИЗМЕНИТЬ 1

Проверьте /etc/default/jenkins вместо этого, если вы установили прямо из .deb пакет.


Похоже, Дженкинс прослушивает localhost (--httpListenAddress=127.0.0.1). В этой конфигурации Jenkins не прослушивает соединения из сетевого интерфейса.

Чтобы решить проблему с Ubuntu, проверьте содержимое /etc/init/jenkins.conf и добавить --httpListenAddress=x.x.x.x к JENKINS_ARGS (где x.x.x.x - внешний IP-адрес сервера).