Итак, я попытался исследовать эту проблему, но дошел до того, что я больше не понимаю, что читаю (просматривая отчеты об ошибках и списки рассылки
Я установил Jenkins и Java на свой сервер под управлением CentOS 6.8. Сначала у меня было несколько проблем с запуском сервиса, но с тех пор я их решил. Теперь остановка службы и ее запуск дает мне красивое зеленое сообщение ОК, в котором говорится, что с миром все в порядке. Когда я запускаю службу jenkins status
, я получаю jenkins (pid 32178) работает ...
. Но когда я пытаюсь получить доступ к своему серверу с IP-адресом моего сервера и номером порта (который я изменил на 8888), он просто зависает, а затем сообщает, что сайт слишком долго отвечал.
Итак, я посмотрел свои журналы jenkins и все выглядело нормально, даже получить это сообщение ИНФОРМАЦИЯ: Jenkins полностью запущен и работает
, но чуть ниже я получаю:
WARNING: Prober().run() exception
java.io.IOException: Operation not permitted
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(DatagramSocket.java:693)
at javax.jmdns.impl.JmDNSImpl.send(JmDNSImpl.java:1537)
at javax.jmdns.impl.tasks.state.DNSStateTask.run(DNSStateTask.java:131)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
Jun 22, 2016 12:08:59 AM javax.jmdns.impl.JmDNSImpl __recover
WARNING: RECOVERING
Jun 22, 2016 12:08:59 AM javax.jmdns.impl.tasks.state.DNSStateTask run
WARNING: Canceler().run() exception
java.io.IOException: Operation not permitted
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(DatagramSocket.java:693)
at javax.jmdns.impl.JmDNSImpl.send(JmDNSImpl.java:1537)
at javax.jmdns.impl.tasks.state.DNSStateTask.run(DNSStateTask.java:131)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
Итак, я поискал решение этой проблемы и сначала нашел несколько вариантов должен был убедиться, что мой сервер прослушивает выбранный мной порт (8888). Итак, я запустил netstat -tuplen
и увидел ::: 8888
с состоянием LISTEN
и java в качестве имени программы. Это заставляет меня думать, что система прослушивает этот порт, хотя, возможно, я ошибаюсь. Я также нашел длинный список рассылки, 75% которого я не понял, но все сводилось к тому, чтобы проверить, включена ли многоадресная рассылка на сервере, поэтому я запустил ifconfig eth0
и получил UP BROADCAST RUNNING MULTICAST
в большом блоке текста, что наводит меня на мысль, что многоадресная рассылка включена.
Кроме того, моя версия java, если openjdk 1.8.0_91, поскольку я знаю, что Jenkins не любит обычную java похоже, он установлен на машинах CentOS.
Просто интересно, в чем еще может быть проблема, когда Jenkins не запускается и выдает эту ошибку, и что я могу сделать, чтобы исправить это. По большей части я новичок в подобных вещах, поэтому более подробная информация будет полезна.
Итак, когда я настраивал Jenkins, в инструкциях, которым я следовал, не было замечено, что есть разница между запуском Jenkins на собственном сервере и запуском Jenkins на веб-сервере, на котором также был запущен Apache.
После того, как я выяснил, что разница действительно есть, я пошел немного другим путем с моей конфигурацией jenkins.
Я добавил - prefix = / jenkins
к JENKINS_ARGS
в jenkins конфигурационный файл. Я также изменил порт, который Дженкинс слушал на 8081, и изменил IP-адрес, который слушал Дженкинс, с 0.0.0.0
на 127.0.0.1
Затем я добавил:
ProxyPass /jenkins http://localhost:8081/jenkins nocanon
ProxyPassReverse /jenkins http://localhost:8081/jenkins
ProxyRequests Off
AllowEncodedSlashes NoDecode
<Proxy http://localhost:8081/jenkins*>
Order deny,allow
Allow from all
</Proxy>
К моему Файл конфигурации Apache. Это устранило мою проблему и позволило мне получить доступ к Jenkins.