如何以不同的用户身份运行jenkins

时间:2011-07-14 11:17:03

标签: continuous-integration jenkins

我一直在尝试关注教程和这一篇:Deploy as Jenkins User or Allow Jenkins To Run As Different User?

但我仍然不能为计算神的爱,作为一个不同的用户运行。以下是我所做的步骤:

  1. 下载jenkins(LTS)的macosx pkg
  2. 设置插件等和git
  3. 尝试构建它
  4. 我一直得到一个无法克隆的错误,因为詹金斯一直以匿名开始:

    Started by user anonymous
    

    如何设置它以便jenkins像我一样运行?我使用的是jenkins Web UI,因此它位于localhost:8080

    我尝试使用/ login登录但我甚至无法使用我的名字或以root身份登录。

    人员标签甚至没有创建用户链接,所以是的,我被困住了。请帮忙吗?

5 个答案:

答案 0 :(得分:35)

@Sagar给出的“问题2”答案适用于大多数git服务器,例如gitorious。

但是,在像 gitolite 这样的系统中会出现名称冲突,其中公共ssh密钥以用户名命名的文件(即keydir/jenkins.pub)签入。如果有多个jenkins服务器需要访问同一个gitolite服务器怎么办?

(注意:这是关于运行Jenkins守护程序没有以用户身份运行构建作业(由@ Sagar的“问题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步

重新启动jenkins

sudo service jenkins restart

答案 1 :(得分:25)

问题1:

Started by user anonymous

意味着Jenkins以匿名用户身份开始。

这只是意味着启动构建的人没有登录。如果你启用了Jenkins安全性,你可以为人们创建用户名,当他们登录时,

"Started by anonymous" 

将更改为

"Started by < username >". 

注意:您无需启用安全性即可运行jenkins或正确克隆。

如果您想启用安全性并创建用户,您应该会在Manage Jenkins > Configure System处看到选项。


问题2:

“无法克隆”错误完全是另一个问题。它与您登录jenkins或启用安全性无关。这只是意味着Jenkins没有从git SCM克隆的凭据。

查看the Jenkins Git Plugin以了解如何设置Jenkins以使用您的git存储库。

希望有所帮助。

答案 2 :(得分:10)

在Mac OS X上,我启用Jenkins从我的(私人)Github仓库中提取的方式是:

首先,确保您的用户拥有Jenkins目录

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

然后编辑Jenkins的LaunchDaemon plist(在/Library/LaunchDaemons/org.jenkins-ci.plist),以便您的用户是GroupName和UserName:

    <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目录,里面有你的密钥。

答案 3 :(得分:9)

如果你真的想像你一样运行Jenkins,我建议你看看我的Jenkins.app。另一种在Mac上运行Jenkins的简便方法。

请参阅https://github.com/stisti/jenkins-app/

https://github.com/stisti/jenkins-app/downloads

下载

答案 4 :(得分:-1)

您也可以集成到LDAP或AD。效果很好。