Как запустить jenkins от имени другого пользователя - PullRequest
39 голосов
/ 14 июля 2011

Я пытался следовать учебным пособиям и этому: Развернуть как пользователь Jenkins или разрешить Jenkins работать от имени другого пользователя?

, но я все еще не могу из-за любви квычислительные боги, бегите от имени другого пользователяВот шаги, которые я сделал:

  1. скачайте macosx pkg для jenkins (LTS)
  2. установочные плагины и т. Д. И git
  3. попробуйте собрать его

Я получаю ошибку невозможности клонирования, потому что jenkins продолжает работать как анонимный:

Started by user anonymous

Как мне настроить его так, чтобы jenkins работал как я?Я использовал веб-интерфейс jenkins, так что он был в localhost: 8080

Я попытался войти в систему, также используя / login, но я даже не могу войти под своим именем или с правами root.

Людивкладка даже не имеет ссылки на создание пользователя, так что да, я застрял.Помогите пожалуйста?

Ответы [ 5 ]

35 голосов
/ 29 октября 2011

Ответ "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
25 голосов
/ 14 июля 2011

ВЫПУСК 1:

Started by user anonymous

То, что не означает , означает, что Jenkins начинал как анонимный пользователь.

Это просто означает, что человек, запустивший сборку, не вошел в систему. Если вы включите защиту Jenkins, вы сможете создавать имена пользователей для людей, и при их входе в систему будет

"Started by anonymous" 

.измените на

"Started by < username >". 

Примечание: вам не нужно включать защиту, чтобы запускать jenkins или клонировать правильно.

Если вы хотите включить защиту и создатьпользователи, вы должны увидеть опции в Manage Jenkins > Configure System.


ВЫПУСК 2:

Ошибка «не клонировать» - это совсем другая проблема.Это не имеет никакого отношения к тому, что вы входите в jenkins или включаете безопасность.Это просто означает, что у Дженкинса нет полномочий для клонирования из вашего git SCM.

Проверьте плагин Jenkins Git , чтобы узнать, как настроить Jenkins для работы с вашим Git-репозиторием.

Надеюсь, это поможет.

10 голосов
/ 11 февраля 2012

В Mac OS X я позволил Jenkins извлекать из моего (частного) репозитория Github:

Сначала убедитесь, что ваш пользователь владеет каталогом Jenkins

sudo chown -R me:me /Users/Shared/Jenkins

Затем отредактируйте список LaunchDaemon для Jenkins (по адресу /Library/LaunchDaemons/org.jenkins-ci.plist), чтобы ваш пользователь представлял имя_группы и имя_пользователя:

    <key>GroupName</key>
    <string>me</string>
...
    <key>UserName</key>
    <string>me</string>

Затем перезагрузите Jenkins:

sudo launchctl unload -w /Library/LaunchDaemons/org.jenkins-ci.plist
sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist

Тогда Jenkins, поскольку он работает от вашего имени, имеет доступ к вашему каталогу ~ / .ssh, в котором есть ваши ключи.

9 голосов
/ 23 марта 2012

Если вы действительно хотите запустить Jenkins как вы, я предлагаю вам проверить мой Jenkins.app.Альтернативный, простой способ запустить Jenkins на Mac.

См. https://github.com/stisti/jenkins-app/

Загрузить с https://github.com/stisti/jenkins-app/downloads

0 голосов
/ 24 февраля 2012

вы также можете интегрировать в LDAP или AD. Хорошо работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...