Перемещение JENKINS_HOME в Windows при установке в качестве службы

Чтобы освободить место на C:, я хотел бы переместить мои файлы данных Jenkins (в частности, каталог \jobs) из каталога установки по умолчанию C:\Program Files (x86)\Jenkins в F:\Jenkins\home. Я думаю, что мне нужно установить переменную окружения JENKINS_HOME на F:\Jenkins\home. Но что бы я ни пытался, переменная окружения JENKINS_HOME всегда устанавливается в местоположение jenkins.exe.

Связанный:

Вот что я пробовал до сих пор:

  1. Перенесены данные Дженкинса в F:\Jenkins\home
  2. Остановите работающий сервис Дженкинс
  3. Удалите службу jenkins с помощью jenkins.exe uninstall
  4. Удалить Дженкинс
  5. Удалить каталог %HOMEPATH%\.jenkins
  6. Удалить старый каталог установки jenkins
  7. Загрузите последний установщик MSI v1.597
  8. Установлен в C:\Program Files (x86)\Jenkins2 (переименован, чтобы исключить устаревшие значения в реестре или в файлах конфигурации)
  9. Установите переменную среды системного уровня JENKINS_HOME на F:\Jenkins\home
  10. Установите переменную среды уровня пользователя JENKINS_HOME на F:\Jenkins\home
  11. Изменено jenkins.xml для использования <env name="JENKINS_HOME" value="F:\Jenkins\home"/>
  12. Запущен сервис Дженкинс

На этом этапе, когда я смотрю на конфигурацию системы, 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 перейдите на:

  1. Управлять Дженкинсом
  2. Конфигурация системы
  3. Нажмите первую "расширенную" кнопку

Это дает вам текстовые поля, в которых вы можете изменить каталог для рабочей области, и создает каталоги. Это две директории, которые занимают много места на диске. Обратите внимание, что это не будет перемещать историю. Если вы хотите переместить существующие рабочие пространства /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 через JenkinsManage JenkinsReload configuration from disk

Вы даже можете сохранить историю сборки, если копируете старые задания в новое место.