Корневой путь веб-сайта Jenkins - PullRequest
27 голосов
/ 01 февраля 2012

Я пытаюсь следовать указаниям здесь: https://wiki.jenkins -ci.org / display / JENKINS / Running + Jenkins + позади + Apache , чтобы настроить мой сервер Jenkins на http://myhost/jenkins. Это работает, но веб-сайт Jenkins считает, что http://myhost/ - это jenkins / root.

Я полагаю, что эта проблема вызвана первым флагом предупреждения на этой веб-странице, то есть, что мой контекстный путь установлен неправильно.Тем не менее, я не могу понять, где установить контекстный путь.Инструкции для Ubuntu и Windows достаточно ясны, но в Mac OS X 10.6 нет файла jenkins.xml, файла / etc / default / jenkins и ничего не значимого в ~ / .jenkins / config.xml..

Итак, что мне не хватает?Где я могу сказать jenkins, что его корень находится в / jenkins / вместо /?

Ответы [ 11 ]

29 голосов
/ 03 февраля 2012

Перефразируя из упомянутого вами документа;

Вам необходимо указать контекст / префикс экземпляра Jenkins, это можно сделать, изменив конфигурацию Jenkins следующим образом; Либо задайте путь к контексту, изменив файл конфигурации jenkins.xml и добавив в запись --prefix = / jenkins (или аналогичный). Или установите контекстный путь при использовании, добавив --prefix = / jenkins к JENKINS_ARGS в / etc / default / jenkins (Ubuntu) или в соответствующем файле запуска.

Итак, как найти эти вещи ...

Файл Jenkins.xml должен находиться в каталоге $ JENKINS_HOME, я не уверен, есть ли в Mac OS команды "updatedb" и "locate", но вы можете попробовать выполнить updatedb && locate jenkins.xml

Также загляните в сценарии запуска; /etc/init.d, если он установлен из пакета, или добавьте JENKINS_ARGS в свойства среды для пользователя, запускающего Jenkins (добавьте к ~user/.profile), или аргументы для контейнера, в котором выполняется Jenkins.


Имейте в виду, что если ваша установка Jenkins (без аргумента prefix) выполнялась в:

http://myserver:8080/ => 200 Jenkins is here

добавление --prefix=/ci/dashboard в аргументы приведет к такому поведению:

http://myserver:8080/ => 404
http://myserver:8080/ci/dashboard => 200 Jenkins is now here
10 голосов
/ 01 февраля 2012

Не уверен, где искать в config.xml, но в http://myhost/jenkins/configure, есть опция под названием «Jenkins URL», которую вы можете использовать для ее установки.

9 голосов
/ 18 августа 2015

Просто чтобы дать некоторое недавнее подтверждение предложенных подходов, в CentOS 7 с Jenkins 1.610 я смог добиться этого, изменив jenkinsUrl в jenkins.model.JenkinsLocationConfiguration.xml к нужному (например, http://127.0.0.1:8080/jenkins), добавление

JENKINS_ARGS="--prefix=/jenkins"

внутри / etc / sysconfig / jenkins и перезапуск Jenkins.

FYI the Jenkinsустановка была сделана через Puppet, используя этот модуль Puppet .

9 голосов
/ 30 декабря 2014
  1. Добавление атрибута префикса в файл / etc / default / jenkins:

    JENKINS_ARGS = "- webroot = / var / cache / jenkins / war - префикс = / jenkins --httpPort = $ HTTP_PORT --ajp13Port = $ AJP_PORT

  2. Настройте свой веб-сервер (например, - nginx) для перенаправления /jenkins на localhost:8080;

6 голосов
/ 03 апреля 2014

Вот как я это исправил в Debian Wheezy под управлением Jenkin 1.557

  • в / etc / default / jenkins, измените строку JENKINS_ARGS, добавив "--prefix = $ PREFIX"

    JENKINS_ARGS = "..... --prefix = $ PREFIX"

6 голосов
/ 23 марта 2012

Поместите это в /etc/apache2/other/jenkins.conf:

.
ProxyPass         /jenkins  http://localhost:8009/jenkins
ProxyPassReverse  /jenkins  http://localhost:8009/jenkins
ProxyRequests     Off
<Proxy http://localhost:8009/jenkins*>
    Order deny,allow
    Allow from 127.0.0.1
</Proxy>

Затем выполните эти команды:

sudo defaults write /Library/Preferences/org.jenkins-ci httpPort 8009
sudo defaults write /Library/Preferences/org.jenkins-ci prefix /jenkins
sudo launchctl stop org.jenkins-ci

Последняя команда сообщает launchd остановить запущенный экземпляр Jenkins. И новый будет автоматически запущен, потому что launchd был настроен на постоянную работу Jenkins.

3 голосов
/ 25 октября 2012

вам нужно отредактировать файл конфигурации jenkins в каталоге, например: sudo vi / etc / default / jenkins и изменить var HTTP_PORT следующий перезапуск jenkins sudo /etc/init.d/jenkins restart

надеюсь, что это полезно

1 голос
/ 08 января 2018

Я использую CentOS7, добавляю JENKINS_ARGS="--prefix=/jenkins" к /etc/sysconfig/jenkins и перезагружаю работающую Дженкинс.Тогда вы можете посетить через ip:8080/jenkins

0 голосов
/ 28 декабря 2018

Для установки Windows добавьте префикс в тег <arguments> (jenkins.xml) и перезапустите службу (Powershell Restart-Service jenkins). E.g.:

  <executable>%BASE%\jre\bin\java</executable>
  <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war" --prefix=/jenkins</arguments>
0 голосов
/ 28 марта 2018

Мне нужно было настроить Jenkins на коробке CentOS через Puppet с помощью модуля rtyler / jenkins . Просматривая код модуля, можно предположить, что HTTP_PORT и PREFIX должны быть параметрами в config_hash, но это не сработало для меня. Для меня работало что-то вроде следующей конфигурации Puppet:

  class { 'jenkins':
    config_hash  => { 
       'JENKINS_PORT' => { 'value' => '8085' },
       'JENKINS_ARGS' => { 'value' => '--prefix=/jenkins' },
    },
  }

Мне удалось подтвердить, что это обновило содержимое " / etc / sysconfig / jenkins " (я считаю, что это местоположение файла CentOS / RedHat).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...