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

Jenkins зависает без ошибок при запуске

Итак, я попытался исследовать эту проблему, но дошел до того, что я больше не понимаю, что читаю (просматривая отчеты об ошибках и списки рассылки).

Я установил Jenkins и Java на свой сервер под управлением CentOS 6.8. Сначала у меня было несколько проблем с запуском сервиса, но с тех пор я их решил. Остановка службы и ее запуск дают мне красивое зеленое сообщение ОК, говорящее о том, что с миром все в порядке. Когда я бегу service jenkins status я получил jenkins (pid 32178) is running.... Но когда я пытаюсь получить доступ к своему серверу с IP-адресом моего сервера и номером порта (который я изменил на 8888), он просто зависает, а затем сообщает, что сайт слишком долго отвечал.

Я посмотрел свои журналы jenkins, и все выглядело нормально, даже получилось это сообщение INFO: Jenkins is fully up and running, но чуть ниже я получаю:

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, насколько я знаю, Дженкинсу не нравится обычная java, которая, похоже, установлена ​​на машинах CentOS.

Просто интересно, в чем еще может быть проблема, когда Дженкинс не запускается и выдает эту ошибку, и что я могу сделать, чтобы это исправить. Я по большей части новичок в таких вещах, поэтому более подробная информация будет полезна.

Итак, когда я настраивал 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.