How to run jenkins as a different user

前端 未结 5 1397
眼角桃花
眼角桃花 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:34

    ISSUE 1:

    Started by user anonymous

    That does not mean that Jenkins started as an anonymous user.

    It just means that the person who started the build was not logged in. If you enable Jenkins security, you can create usernames for people and when they log in, the

    "Started by anonymous" 
    

    will change to

    "Started by < username >". 
    

    Note: You do not have to enable security in order to run jenkins or to clone correctly.

    If you want to enable security and create users, you should see the options at Manage Jenkins > Configure System.


    ISSUE 2:

    The "can't clone" error is a different issue altogether. It has nothing to do with you logging in to jenkins or enabling security. It just means that Jenkins does not have the credentials to clone from your git SCM.

    Check out the Jenkins Git Plugin to see how to set up Jenkins to work with your git repository.

    Hope that helps.

    0 讨论(0)
  • 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
    
    0 讨论(0)
  • 2020-11-28 22:43

    you can integrate to LDAP or AD as well. It works well.

    0 讨论(0)
  • 2020-11-28 22:44

    On Mac OS X, the way I enabled Jenkins to pull from my (private) Github repo is:

    First, ensure that your user owns the Jenkins directory

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

    Then edit the LaunchDaemon plist for Jenkins (at /Library/LaunchDaemons/org.jenkins-ci.plist) so that your user is the GroupName and the UserName:

        <key>GroupName</key>
        <string>me</string>
    ...
        <key>UserName</key>
        <string>me</string>
    

    Then reload Jenkins:

    sudo launchctl unload -w /Library/LaunchDaemons/org.jenkins-ci.plist
    sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist
    

    Then Jenkins, since it's running as you, has access to your ~/.ssh directory which has your keys.

    0 讨论(0)
  • 2020-11-28 22:47

    If you really want to run Jenkins as you, I suggest you check out my Jenkins.app. An alternative, easy way to run Jenkins on Mac.

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

    Download it from https://github.com/stisti/jenkins-app/downloads

    0 讨论(0)
提交回复
热议问题