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

cor*_*ded 40 continuous-integration jenkins

我一直在尝试按照教程和本教程:部署为Jenkins用户或允许Jenkins以不同用户身份运行?

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

  1. 下载jenkins(LTS)的macosx pkg
  2. 设置插件等和git
  3. 试着建立它

我一直得到一个无法克隆的错误,因为jenkins一直以匿名开头:

Started by user anonymous
Run Code Online (Sandbox Code Playgroud)

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

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

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

Pet*_*ran 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
Run Code Online (Sandbox Code Playgroud) 结束补丁

第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
Run Code Online (Sandbox Code Playgroud)

第3步

重启jenkins

sudo service jenkins restart
Run Code Online (Sandbox Code Playgroud)


Sag*_*gar 26

问题1:

Started by user anonymous

并不意味着Jenkins最初是匿名用户.

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

"Started by anonymous" 
Run Code Online (Sandbox Code Playgroud)

将改为

"Started by < username >". 
Run Code Online (Sandbox Code Playgroud)

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

如果要启用安全性并创建用户,则应该看到选项Manage Jenkins > Configure System.


问题2:

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

查看Jenkins Git插件,了解如何设置Jenkins以使用您的git存储库.

希望有所帮助.


com*_*nda 10

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

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

sudo chown -R me:me /Users/Shared/Jenkins
Run Code Online (Sandbox Code Playgroud)

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

    <key>GroupName</key>
    <string>me</string>
...
    <key>UserName</key>
    <string>me</string>
Run Code Online (Sandbox Code Playgroud)

然后重新加载Jenkins:

sudo launchctl unload -w /Library/LaunchDaemons/org.jenkins-ci.plist
sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist
Run Code Online (Sandbox Code Playgroud)

然后Jenkins,因为它正在运行,你可以访问你的〜/ .ssh目录,它有你的密钥.


sti*_*sti 9

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

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

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