我一直在尝试关注教程和这一篇:Deploy as Jenkins User or Allow Jenkins To Run As Different User?
但我仍然不能为计算神的爱,作为一个不同的用户运行。以下是我所做的步骤:
我一直得到一个无法克隆的错误,因为詹金斯一直以匿名开始:
Started by user anonymous
如何设置它以便jenkins像我一样运行?我使用的是jenkins Web UI,因此它位于localhost:8080
我尝试使用/ login登录但我甚至无法使用我的名字或以root身份登录。
人员标签甚至没有创建用户链接,所以是的,我被困住了。请帮忙吗?
答案 0 :(得分:35)
@Sagar给出的“问题2”答案适用于大多数git服务器,例如gitorious。
但是,在像 gitolite 这样的系统中会出现名称冲突,其中公共ssh密钥以用户名命名的文件(即keydir/jenkins.pub
)签入。如果有多个jenkins服务器需要访问同一个gitolite服务器怎么办?
(注意:这是关于运行Jenkins守护程序没有以用户身份运行构建作业(由@ Sagar的“问题1”解决)。)
因此,在这种情况下,您需要以不同的用户身份运行Jenkins守护程序。
有两个步骤:
主要是更新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
结束补丁
更新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
重新启动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的简便方法。
下载答案 4 :(得分:-1)
您也可以集成到LDAP或AD。效果很好。