如何作为一个不同的用户运行jenkins
我一直在试图遵循教程和这一个: 作为jenkins用户部署或允许jenkins作为不同的用户运行?
但是我仍然不能对于电脑神的爱,作为一个不同的用户来运行。 以下是我所做的步骤:
- 下载macosx pkg for jenkins(LTS)
- 安装插件等和混帐
- 尝试构build它
我一直得到一个无法克隆错误,因为jenkins始终匿名:
Started by user anonymous
我如何设置,让jenkins像我一样? 我正在使用jenkinsnetworking用户界面,所以它在本地主机:8080
我尝试login也使用/login,但我甚至不能login使用我的名字或作为根。
人民选项卡甚至没有创build用户链接,所以是的,我被卡住了。 请帮助?
问题1:
Started by user anonymous
这并不意味着jenkins是以匿名用户身份开始的。
这只是表示开始构build的人没有login。如果启用Jenkins安全性,则可以为人员创build用户名,login时,
"Started by anonymous"
将改变为
"Started by < username >".
注意:您不必为了运行jenkins或克隆正确而启用安全性。
如果您想启用安全性并创build用户,您应该在Manage Jenkins > Configure System
看到选项。
问题2:
“无法克隆”错误完全是一个不同的问题。 它与loginjenkins或启用安全无关。 这仅仅意味着Jenkins没有从git SCM克隆的证书。
看看Jenkins Git Plugin ,看看如何设置Jenkins来使用你的git仓库。
希望有所帮助。
@Sagar给出的“问题2”答案适用于大多数git服务器,比如gitorious。
但是,在像gitolite这样的系统中会有一个名字冲突,在这个系统中,公共ssh密钥被作为以用户名命名的文件( keydir/jenkins.pub
。 如果有多个jenkins服务器需要访问相同的gitolite服务器呢?
(注意:这是关于运行Jenkins守护进程而不是以用户身份运行构build作业的(由@Sargar的“问题1”处理)。)
所以在这种情况下,你需要以另一个用户的身份运行Jenkins守护进程。
有两个步骤:
步骤1
主要的是更新JENKINS_USER
环境variables。 这是一个修补程序,显示如何将用户更改为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
END PATCH
第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
在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目录,其中有你的钥匙。
如果你真的想像你一样运行jenkins,我build议你看看我的Jenkins.app。 在Mac上运行Jenkins的另一种简单方法。
您也可以集成到LDAP或AD中。 它运作良好。