Ответ "Issue 2", данный @Sagar, подходит для большинства git-серверов, таких как gitorious.
Однако в системе, такой как gitolite , будет происходить конфликт имен, когда открытые ssh-ключи регистрируются как файлы с именем пользователя, то есть keydir/jenkins.pub
. Что если есть несколько серверов jenkins, которым требуется доступ к одному и тому же серверу gitolite?
(Примечание: речь идет о запуске демона Jenkins, который не запускает задание на сборку в качестве пользователя (рассматривается @ Sagar в "Issue 1").)
Так что в этом случае вам нужно запустить демон Jenkins от имени другого пользователя.
Есть два шага:
Шаг 1
Главное - обновить переменную окружения JENKINS_USER
. Вот патч, показывающий, как изменить пользователя на ptran
.
НАЧАТЬ ПАТЧ
--- etc/default/jenkins.old 2011-10-28 17:46:54.410305099 -0700
+++ etc/default/jenkins 2011-10-28 17:47:01.670369300 -0700
@@ -13,7 +13,7 @@
PIDFILE=/var/run/jenkins/jenkins.pid
# user id to be invoked as (otherwise will run as root; not wise!)
-JENKINS_USER=jenkins
+JENKINS_USER=ptran
# location of the jenkins war file
JENKINS_WAR=/usr/share/jenkins/jenkins.war
--- etc/init.d/jenkins.old 2011-10-28 17:47:20.878539172 -0700
+++ etc/init.d/jenkins 2011-10-28 17:47:47.510774714 -0700
@@ -23,7 +23,7 @@
#DAEMON=$JENKINS_SH
DAEMON=/usr/bin/daemon
-DAEMON_ARGS="--name=$NAME --inherit --env=JENKINS_HOME=$JENKINS_HOME --output=$JENKINS_LOG - -pidfile=$PIDFILE"
+DAEMON_ARGS="--name=$JENKINS_USER --inherit --env=JENKINS_HOME=$JENKINS_HOME --output=$JENKINS_LOG --pidfile=$PIDFILE"
SU=/bin/su
КОНЕЦ ПАТЧ
Шаг 2
Обновление владения каталогами jenkins:
chown -R ptran /var/log/jenkins
chown -R ptran /var/lib/jenkins
chown -R ptran /var/run/jenkins
chown -R ptran /var/cache/jenkins
Шаг 3
Перезагрузите Дженкинс
sudo service jenkins restart