Мы не можем получить доступ к Дженкинсу из любого места

17335
fische

Мы только что установили Jenkins на наш сервер (Debian 7 wheezy). Он работает в локальной сети, но не во внешней сети. Мы ищем, но мы не нашли обходного пути для этой проблемы.

Мы можем пропинговать наш сервер, но когда мы идем по адресу для Дженкинса, он не работает.

3
Вы проверили настройки брандмауэра? 10 лет назад 0
Tomcat работает на порте 80 или работает на Apache? David Levesque 10 лет назад 0
Я думаю, у Дженкинса есть свой собственный контейнер? Нет? fische 10 лет назад 0
Это зависит от того, как вы его установили. David Levesque 10 лет назад 0

2 ответа на вопрос

2
William LAM

Probably because of the reasons below:

1) Your web server config

For apache: allow from all

For tomcat:

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 

should be

<Host name="www.example.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 

2) Your firewall settings (open port for external connection)

3) Jenkins Config

Firstly, for Debien, modify /etc/default/jenkins, add a line HTTP_HOST=external address (e.g. HTTP_HOST=www.example.com)

Then, add --httpListenAddress=$HTTP_HOST to your JENKINS_ARGS (JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT --httpListenAddress=$HTTP_HOST")

Finally, restart your jenkins

У нас уже есть Redmine с Apache, и он работает хорошо. И с помощью команды iptables -L результат будет следующим: Цепочка INPUT (policy ACCEPT) целевой целевой источник prot opt ​​Цепь FORWARD (policy ACCEPT) целевой целевой источник prot opt ​​Цепной OUTPUT (policy ACCEPT) целевой целевой источник prot opt ​​Таким образом, обычно все порты открыты , Нет? fische 10 лет назад 0
Попробуйте отключить брандмауэр: # /etc/init.d/iptables save # /etc/init.d/iptables stop. Доступен ли ваш redmine внешней сети? Ваши Jenkins и Redmine развернуты на одном веб-сервере? По умолчанию Jenkins имеет собственный автономный веб-сервер, работающий на порте 8080. William LAM 10 лет назад 0
Да, Redmine всегда доступен для внешней сети. Redmine и Jenkins не находятся на одном сервере (то есть Apache и Tomcat). Я действительно не понимаю. Есть ли что-то, что можно изменить в конфигурации Дженкина? fische 10 лет назад 0
Если я изменю порт jenkins на 80 (т.е. порт redmine) и остановлю apache. Дженкинс тоже не работает. fische 10 лет назад 0
Как насчет конфига Дженкинса? в / etc / default / jenkins JENKINS_ARGS = "- webroot = / var / run / jenkins / war --httpPort = $ HTTP_PORT --ajp13Port = $ AJP_PORT --httpListenAddress = $ HTTP_HOST" $ HTTP_HOST не должен быть локальным или 127.0. 0,1 William LAM 10 лет назад 0
У меня просто есть JENKINS_ARGS = "- webroot = / var / cache / jenkins / war --httpPort = $ HTTP_PORT --ajp13Port = $ AJP_PORT". Хорошо? Я должен указать $ HTTP_HOST? и если я должен указать их, что я должен написать? fische 10 лет назад 0
посмотрите, может ли обновленный ответ решить вашу проблему William LAM 10 лет назад 0
это не работает! > <. Я указываю для HTTP_HOST мой внешний адрес моего сервера. Это верно? fische 10 лет назад 0
как насчет настройки кота. Можете ли вы получить доступ к домашней странице Tomcat или другой войне, кроме Дженкинс? Это не проблема Дженкинса. Смотрите обновленный ответ. William LAM 10 лет назад 0
Я меняю свою конфигурацию Tomcat. И у меня не может быть доступа к коту. У меня есть Tomcat6. fische 10 лет назад 0
Не могли бы вы опубликовать свой server.xml на свой вопрос? William LAM 10 лет назад 0
0
Gary

a) Откройте оболочку Bash (Git Bash в Windows подойдет) на вашем домашнем компьютере (не на компьютере Jenkins).

б) Выполните PORT FORWARD через SECURE SSH TUNNEL, чтобы «сопоставить» порт 8080 на компьютере Jenkins с портом 8080 на вашем домашнем компьютере. Команда для этого в оболочке Git Bash:

ssh -L 127.0.0.1:8080:localhost:8080 YourAdminName@xx.yyy.zzz.ab -i "C: \ PathToFolderContainedMySecretKey"

Здесь xx.yyy.zzz.ab - ваш общедоступный интернет-адрес (например, 62.187.151.9). Обратите внимание, что путь после -i - это путь на вашем компьютере, где вы сохранили закрытый ключ, который совпадает с открытым ключом, который вы использовали на компьютере Jenkins.

в) А теперь к вашему домашнему компьютеру можно подключиться так: http: // localhost: 8080

г) При первой настройке Jenkins вам понадобится начальный пароль администратора. Вот как это получить. В оболочке Git Bash на домашнем компьютере (помните, что вы уже подключились через SSH к компьютеру Jenkins):

кот sudo / var / lib / jenkins / секреты / initialAdminPassword

Скопируйте и вставьте его в свой браузер, и все!

Похожие вопросы