Изменить JENKINS_HOME на Red Hat Linux?
Я использовал эту процедуру для установки Jenkins:
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions
После его запуска я обнаружил, что раздел /var/lib/jenkins на моем сервере очень маленький. Я хочу переместить его, но я не хочу менять пользователя, с которым он работает. Я новичок в Linux, и я в тупике. Как переместить его, например, в папку Home/Public? У пользователя "Jenkins" нет домашней папки. Его запуск как демон при запуске, поэтому я не знаю, где настроить эти параметры.
Могу ли я создать домашнюю папку для пользователя Jenkins? Как?
Я прочитал эту статью:
https://wiki.jenkins-ci.org/display/JENKINS/Administering+Jenkins
но не понимаю, КАК "установить новый дом Дженкинса". Я использовал команду export и перезапустил службу, но старый путь все еще отображается на экранах Manage Jenkins.
Я также прочитал 2-3 похожих вопроса о stackoverflow, но для меня всегда есть недостающая часть. Где найти этот файл, где я постоянно меняю путь?
Ответы
Ответ 1
Вот простой способ решить вашу проблему. Сначала переместите каталог Jenkins с /var/lib/jenkins
на /home/jenkins
. Затем создайте символическую ссылку в /var/lib/jenkins
, указывая на /home/jenkins
. И, конечно, остановите службу Дженкинса, прежде чем делать это.
sudo service jenkins stop
sudo mv /var/lib/jenkins /home
sudo ln -s /home/jenkins /var/lib/jenkins
sudo service jenkins start
Ответ 2
Мне удалось изменить исходное местоположение для Jenkins, изменив содержимое файла /etc/sysconfig/jenkins следующим образом:
JENKINS_HOME="/home/jenkins"
Ответ 3
Хорошо, я перечитал ваш вопрос немного поближе, давайте посмотрим, сможем ли мы это понять. Я собираюсь перечислить некоторую информацию, которую вы можете или не можете знать.
-
Установки дженкинсов и дома дженкинсов - это не одно и то же. Один из них - это военный файл и другие части, которые нужно запустить в прямом эфире. jenkins_home - это место, где хранятся ваши данные. По умолчанию jenkins_home живет в ~/.jenkins. Когда вы начинаете jenkins, он ищет переменную окружения, чтобы сообщить ей, где найти эти файлы.
-
Jenkins работает как отдельный пользователь, который по умолчанию является jenkins. Таким образом, это не мешает вам. У пользователя jenkins не будет доступа к ВАШЕЙ домашней директории, поэтому это будет плохое решение. В идеале у него будет собственный домашний каталог /home/jenkins. Тогда ваш домашний каталог может быть /home/jenkins/.jenkins. Вы говорите, что папка не существует - если у вас нет доступа к ней для ее создания, это совершенно нормально, вы можете указать ЛЮБАЯ папка. Тем не менее, пользователь jenkins должен владеть этой папкой для чтения и записи на нее.
-
Похоже, Дженкинс на redhat будет работать с tomcat по умолчанию. Документация о том, как установить переменные среды для tomcat, https://wiki.jenkins-ci.org/display/JENKINS/Tomcat
-
Все это настроено с помощью script. https://wiki.jenkins-ci.org/display/JENKINS/JenkinsLinuxStartupScript, похоже, используется для этой цели. Даже если вы ничего не знаете о сценариях оболочки, это не слишком сложно... строки С# являются комментариями. Первая строка
JENKINS_USER = Дженкинс
задает имя учетной записи пользователя, которую будет использовать jenkins. Посмотрите вниз дальше, и вы увидите строку
export JENKINS_BASEDIR=/home/jenkins
export CATALINA_OPTS="-DJENKINS_HOME=$JENKINS_BASEDIR/jenkins-home -Xmx512m -Djava.awt.headless=true"
Это позволяет вам установить каталог, в котором должны жить jenkins, а затем устанавливает каталог jenkins_home в этот /jenkins -home.
Для вашего приложения вы можете сделать что-то вроде этого
export CATALINA_OPTS="-DJENKINS_HOME=/var/jenkinsmount/home -Xmx512m -Djava.awt.headless=true"
Это сохранит все ваши данные сборки (которая является частью, которая растет!) в /var/jenkinsmount/home... оставив остальные ваши файлы в их текущем местоположении.
Я не использовал его на redhat, но, надеюсь, я достаточно объяснил, чтобы вы действительно понимали, что происходит, чтобы вы могли это сделать!
Другие сведения:
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Unix+daemon
Ответ 4
Я столкнулся с той же проблемой и вопросом.
Соединяя некоторые точки, я мог бы исправить свои Дженкинс после того, как я перевел Дженкинса в новое место из-за той же проблемы -пространства на диске в /var/lib/jenkins.
Вот процедуры, которые я должен был выполнить, чтобы заставить его работать, принимая во внимание, что я указываю Дженкинсу на нестандартный порт. (Я применил этот процесс на 2 сервера)
Сначала переместите каталог Jenkins из /var/lib/jenkins в/opt/jenkins
sudo service jenkins stop
sudo mv /var/lib/jenkins /opt/
Теперь вы можете изменить рабочее пространство и создать каталог в любом другом месте на вашем компьютере.
Jenkins предоставляет 3 предопределенные переменные, которые могут использоваться для указания нового местоположения:
JENKINS_HOME - домашний каталог Дженкинса
ITEM_ROOTDIR - корневой каталог задания, для которого выделено рабочее пространство
ITEM_FULLNAME - '/-рассмотренное название работы, например "foo/bar"
sudo su jenkins (access as Jenkins user)
JENKINS_HOME=/opt/jenkins
ITEM_ROOTDIR=/opt/jenkins
ITEM_FULLNAME=/opt/jenkins
exit (exit Jenkins user)
Теперь отредактируйте конфигурацию jenkins
/opt/jenkins$ sudo nano /etc/default/jenkins
Измените следующую строку
#jenkins home location
#JENKINS_HOME=/var/lib/$NAME (here is the default)
JENKINS_HOME=/opt/jenkins (that is our new location)
изменить домашний каталог пользователя
sudo usermod -d /opt/jenkins/ jenkins
sudo service jenkins start
Ответ 5
Местоположение Ричарда Чена, где я нашел файл jenkins в моей системе CentOS 6.6.
Ответ 6
Если у кого-то есть проблемы с пространством, и вам нужно переместить Дженкинса, просто хочу повторить, что:
-
sudo service jenkins stop
-
sudo mv/var/lib/jenkins/home
-
sudo ln -s/home/jenkins/var/lib/jenkins
-
sudo service jenkins start
отлично работает, так что спасибо человеку, который опубликовал этот ответ несколько лет назад!
Ответ 7
Некоторые команды работают для меня, как показано ниже:
Шаг 1. Остановите службу jenkin и переместите папку
systemctl stop jenkins
mv /var/lib/jenkins /whatever/folder
sudo chown jenkins -R /whatever/folder
Шаг 2. Изменить домашнее местоположение jenkins в /etc/default/jenkins
JENKINS_HOME=/whatever/folder/$NAME
Шаг 3. Перезапустите сервис jenkins
systemctl start jenkins