Перемещение JENKINS_HOME в Windows при установке в качестве службы
Чтобы освободить место на C:
, я хотел бы переместить мои файлы данных Jenkins (в частности, каталог \jobs
) из каталога установки по умолчанию C:\Program Files (x86)\Jenkins
в F:\Jenkins\home
. Я думаю, что мне нужно установить переменную окружения JENKINS_HOME
на F:\Jenkins\home
. Но что бы я ни пытался, переменная окружения JENKINS_HOME
всегда устанавливается в местоположение jenkins.exe
.
Связанный:
Вот что я пробовал до сих пор:
- Перенесены данные Дженкинса в F:\Jenkins\home
- Остановите работающий сервис Дженкинс
- Удалите службу jenkins с помощью
jenkins.exe uninstall
- Удалить Дженкинс
- Удалить каталог
%HOMEPATH%\.jenkins
- Удалить старый каталог установки jenkins
- Загрузите последний установщик MSI
v1.597
- Установлен в
C:\Program Files (x86)\Jenkins2
(переименован, чтобы исключить устаревшие значения в реестре или в файлах конфигурации)
- Установите переменную среды системного уровня
JENKINS_HOME
на F:\Jenkins\home
- Установите переменную среды уровня пользователя
JENKINS_HOME
на F:\Jenkins\home
- Изменено
jenkins.xml
для использования <env name="JENKINS_HOME" value="F:\Jenkins\home"/>
- Запущен сервис Дженкинс
На этом этапе, когда я смотрю на конфигурацию системы, JENKINS_HOME
установлен на C:\Program Files (x86)\Jenkins2
. Так что, похоже, он всегда должен быть установлен в jenkins.exe
.
Может быть, я ответил на свой вопрос. Я хотел бы разделить программу и данные, если это возможно. Нужно ли устанавливать Дженкинс на мой диск F:\
? Или есть способ просто отделить каталог jobs
и оставить все остальное на C:
?
Спасибо!
РЕДАКТИРОВАТЬ: мне не нужно было перемещать JENKINS_HOME
, но вместо этого я смог сконфигурировать рабочее пространство и создать каталоги, которые перенесли все использование тяжелого диска в F:
. Я выбрал следующие настройки:
Корневой каталог рабочей области = F:/Jenkins/workspace/${ITEM_FULLNAME}
Корневой каталог записей сборки = F:/Jenkins/jobs/${ITEM_FULL_NAME}/builds
Я вручную перенес эти каталоги, чтобы их не пришлось создавать заново. Во время этого процесса я потерял свою историю сборки, но пока все в порядке.
Ответы
Ответ 1
Предварительно Дженкинс 2.121
JENKINS_HOME - это то место, где установлен Jenkins, но это не то, что вы хотите изменить. После запуска Jenkins перейдите на:
- Управлять Дженкинсом
- Конфигурация системы
- Нажмите первую "расширенную" кнопку
Это дает вам текстовые поля, в которых вы можете изменить каталог для рабочей области, и создает каталоги. Это две директории, которые занимают много места на диске. Обратите внимание, что это не будет перемещать историю. Если вы хотите переместить существующие рабочие пространства /etc, вам нужно скопировать их вручную.
Пост 2.121
Вы должны установить свойства (не через пользовательский интерфейс). Системное свойство для использования - jenkins.model.Jenkins.buildsDir.
https://jenkins.io/doc/upgrade-guide/2.121/#ui-option-for-custom-builds-and-workspace-directories-on-the-master-has-been-removed
https://wiki.jenkins.io/display/JENKINS/Features+controlled+by+system+properties
Ответ 2
Другая возможность заключается в перемещении всего содержимого $JENKINS_HOME.
Он не требует редактирования файлов конфигурации и сохраняет историю сборки.
-
Остановить запущенную службу: jenkins.exe stop
-
Удалите службу: jenkins.exe uninstall
-
Копия C:\Jenkins\home для F:\Jenkins\home
-
Переименуйте C:\Jenkins на что-то еще, сохраните его как резервное копирование.
-
Перейдите к F:\Jenkins\home
-
Переустановите службу: jenkins.exe install
-
Начать Jenkins: jenkins.exe start
Наслаждайтесь новым дисковым пространством!
Ответ 3
Для Jenkins 2.0 необходимо было добавить переменную системной среды, называемую "JENKINS_HOME", которая указывает на новое местоположение. Шаги, которые я использовал:
- Остановите контейнер, в котором размещены Jenkins (например, Tomcat).
- Добавьте переменную системной среды, называемую "JENKINS_HOME", которая указывает на новое местоположение.
- Перезапустите контейнер с Jenkins.
Ответ 4
Если вы используете версию jenkins старше 2.0, вы должны сделать следующее:
1) открыть jenkins → управлять Jenkins → Configure System. Проверьте путь к домашнему каталогу.
2) Остановите службу дженкинсов.
3) скопируйте домашний каталог jenkins на другой диск или местоположение, которое вы хотите переместить.
4) откройте файл jenkins.xml из файлов программы и измените значение <env name="JENKINS_HOME" value="d:\Jenkins"/>
Измените d:\Jenkins на новый путь.
5) перезапустите службу Jenkins.
6) проверьте свою работу:)
Ответ 5
сначала установите домашний путь jenkins, а затем запустите/установите jenkins.war
пример:
set JENKINS_HOME=D:\
java -jar jenkins.war --httpPort=8091 -path=D:\<some-folder-name>\
Ответ 6
Наткнулся на этот вопрос, потому что я был на жестком диске на C:/, но у меня было много на D:/.
Ответ Jeanne Boyarsky имел ровно нулевой эффект на моих Дженкинсов. Хотя я изменил две переменные, Дженкинс все еще использовал оригинальные каталоги workspace
и jobs
, которые потребляли 1/3 моего диска C:/.
Коллега показал мне мертвое простое решение просто используя Символьные ссылки для каталогов.
После закрытия Jenkins откройте CMD
в каталоге %JENKINS_HOME%
и просто создайте две ссылки для больших каталогов:
pushd %JENKINS_HOME%
:: save the old directories
ren workspace workspace.old
ren jobs jobs.old
:: now create the links
mklink /D /J workspace D:\jenkins\workspace
mklink /D /J jobs D:\jenkins\jobs
:: copy the original jobs to the new location
xcopy jobs.old\* jobs\ /sy
После этого перезапустите Jenkins. Если все работает нормально, вы можете безопасно удалить каталоги .old
.
Ответ 7
Имея ту же проблему и не желая менять всю локацию %JENKINS_HOME%
, я наткнулся на ответ adil ameen
Измените файл config.xml
в %JENKINS_HOME%
(обычно в C:\Program Files (x86)\Jenkins).
Измените <workspaceDir>
и <buildsDir>
на нужную папку.
Вы можете использовать следующие заполнители: ${JENKINS_HOME}
, ${ITEM_ROOTDIR}
, ${ITEM_FULL_NAME}
. Как указано в функциях, управляемых системными свойствами в jenkins.model.Jenkins.buildsDir
Моя выглядит так:
<workspaceDir>D:/jenkins/jobs/${ITEM_FULL_NAME}/workspace</workspaceDir>
<buildsDir>D:/jenkins/jobs/${ITEM_FULL_NAME}/builds</buildsDir>
Перезагрузите конфигурацию через пользовательский интерфейс Jenkins через Jenkins
→ Manage Jenkins
→ Reload configuration from disk
Вы даже можете сохранить историю сборки, если копируете старые задания в новое место.