Setup Master для сборок на Jenkins

Я переместил jenkins с одного сервера на другой, и, хотя большинство вещей, кажется, работает, я больше не могу строить на мастере.

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

Любые идеи о том, как заставить jenkins получать профиль bash при работе на master?

EDIT: я только что понял, что не сталкиваюсь с этой проблемой, если запускаю jenkins из командной строки вручную. Например, первая команда ниже работает, а вторая нет:

$ nohup java -jar "${JENKINS_PATH}" --httpPort=${HTTP_PORT} > ${LOG_PATH} 2>&1 &  # WORKS
$ /sbin/service jenkins start  # DOESN'T WORK

Команда для запуска jenkins в сценарии запуска такая же, как и в командной строке.


person spizzak    schedule 15.10.2012    source источник
comment
Отличается ли ОС нового сервера от старого? Вы можете проверить /etc/profile и /etc/bash.bashrc   -  person pitseeker    schedule 16.10.2012
comment
Это CentOS 5.8, тогда как старая была 5.2.   -  person spizzak    schedule 16.10.2012


Ответы (2)


Следует проверить настройку вашей новой конфигурации, например: членство пользователя/группы, права доступа к файлам, ...

Можно также установить (обновить) Jenkins, который снова скопирует файлы продукта и попытается перенастроить детали инициализации.

person Gonen    schedule 16.10.2012

Если задание настроено на использование Ant, вы можете поместить любую инициализацию в файл ~/.antrc. Это интерпретируется так, как будто это сценарий оболочки в Linux/Mac. Вы можете выполнить любую настройку путей или других переменных, заставив их читать файлы инициализации, например:

. /etc/profile
. ~/.bash_profile

Причина, по которой он работает для вас в первом примере, заключается в том, что процесс java запускается из командной строки, которая наследует среду. Во втором случае это запуск службы, которая может быть запущена от имени другого пользователя и в другом окружении.

Если этот метод не работает, вы можете найти сценарий, который вызывается при запуске службы jenkins. Попробуйте man service найти, где находятся файлы конфигурации для каждой службы, а затем попробуйте принудительно включить файлы профиля bash, как указано выше.

person the_mandrill    schedule 16.10.2012