How to run jenkins as a different user

前端 未结 5 1425
眼角桃花
眼角桃花 2020-11-28 22:26

I have been trying to follow tutorials and this one: Deploy as Jenkins User or Allow Jenkins To Run As Different User?

but I still can\'t for the love of the computi

5条回答
  •  暗喜
    暗喜 (楼主)
    2020-11-28 22:35

    The "Issue 2" answer given by @Sagar works for the majority of git servers such as gitorious.

    However, there will be a name clash in a system like gitolite where the public ssh keys are checked in as files named with the username, ie keydir/jenkins.pub. What if there are multiple jenkins servers that need to access the same gitolite server?

    (Note: this is about running the Jenkins daemon not running a build job as a user (addressed by @Sagar's "Issue 1").)

    So in this case you do need to run the Jenkins daemon as a different user.

    There are two steps:

    Step 1

    The main thing is to update the JENKINS_USER environment variable. Here's a patch showing how to change the user to ptran.

    BEGIN PATCH
    --- 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

    Step 2

    Update ownership of jenkins directories:

    chown -R ptran /var/log/jenkins
    chown -R ptran /var/lib/jenkins
    chown -R ptran /var/run/jenkins
    chown -R ptran /var/cache/jenkins
    

    Step 3

    Restart jenkins

    sudo service jenkins restart
    

提交回复
热议问题