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

Continuous integration 如何以不同的用户身份运行jenkins,continuous-integration,jenkins,Continuous Integration,Jenkins,我一直在努力学习教程和本教程: 但我仍然不能以一个不同的用户的身份运行。以下是我所做工作的步骤: 下载适用于jenkins的macosx软件包(LTS) 安装插件等和git 试着建造它 我一直收到无法克隆的错误,因为jenkins一直以匿名身份开始: Started by user anonymous 我如何设置它,让詹金斯像我一样跑步?我使用的是jenkins web UI,所以它在localhost:8080中 我也尝试使用/login登录,但我甚至无法使用我的名字或根用户登录 “人员”选

我一直在努力学习教程和本教程:

但我仍然不能以一个不同的用户的身份运行。以下是我所做工作的步骤:

  • 下载适用于jenkins的macosx软件包(LTS)
  • 安装插件等和git
  • 试着建造它
  • 我一直收到无法克隆的错误,因为jenkins一直以匿名身份开始:

    Started by user anonymous
    
    我如何设置它,让詹金斯像我一样跑步?我使用的是jenkins web UI,所以它在localhost:8080中

    我也尝试使用/login登录,但我甚至无法使用我的名字或根用户登录


    “人员”选项卡甚至没有创建用户链接,所以我被卡住了。请帮忙?

    第1期:

    由用户匿名启动

    这并不意味着詹金斯一开始是匿名用户

    这仅仅意味着启动构建的人没有登录。如果启用Jenkins安全性,则可以为用户创建用户名,当用户登录时

    "Started by anonymous" 
    
    将改为

    "Started by < username >". 
    
    “由启动”。
    
    注意:运行jenkins或正确克隆无需启用安全性。

    如果要启用安全性并创建用户,应查看
    Manage Jenkins>Configure System
    上的选项


    第二期:

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

    查看如何设置Jenkins以使用git存储库

    希望能有所帮助。

    由@Sagar给出的“问题2”答案适用于大多数git服务器,如gitorious

    但是,在像gitolite这样的系统中,将出现名称冲突,其中公共ssh密钥作为使用用户名命名的文件签入,即
    keydir/jenkins.pub
    。如果有多个jenkins服务器需要访问同一个gitolite服务器怎么办

    (注意:这是关于运行Jenkins守护程序而不是以用户身份运行构建作业(由@Sagar的“问题1”解决)

    因此,在本例中,您确实需要以不同的用户身份运行Jenkins守护程序

    有两个步骤:

    第一步 主要是更新
    JENKINS\u USER
    环境变量。这里有一个补丁,展示了如何将用户更改为
    ptran

    开始修补 端片 步骤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 重新启动詹金斯

    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),以便您的用户是组名和用户名:

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

    然后Jenkins可以访问~/.ssh目录,该目录中有您的密钥。

    您也可以集成到LDAP或AD。它工作得很好。

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


    下载它,这是我正在阅读的内容,但是我完全不知道如何将用户设置为我自己,因为它显然是作为“守护进程”运行的。当我点击“匿名启动”(匿名是一个链接)并将我发送到用户设置屏幕时,我终于找到了答案。我猜用户界面并不友好:P谢谢你的提示@sti有一个很好的解决方案-请参阅下面的“jenkins应用程序”。对否决票的解释会很好,谢谢。嗨,Peter,我有完全相同的问题,但我已经在redhat上安装了它,我唯一拥有的是/etc/init.d/jenkins和/etc/sysconfig/jenkins(是一个xml文件)你会建议对redhat的用户也像上面所说的那样吗?@7dr3am7:我不能肯定,我的公司在Ubuntu上实现了标准化,所以我已经有一段时间没有使用redhat系统了。
    /etc/sysconfig/jenkins
    看起来像这样吗:?如果是这样,那么您可以尝试更新JENKINS_用户变量,然后更新
    /etc/init.d/JENKINS
    ,类似于我上面的补丁。嗨,Peter!是的,这就是我要找的!最后一个问题:我是否也需要给出用户的pwd?(这似乎是合法的)@7dr3am7:不,我能够做到这一点,而不需要用户的密码(在我的示例中为“ptran”)。嗨,Peter,关于“我无法通过Manage Jenkins>配置系统来做到这一点,如@Sagar的“第1期”中所建议的“,我说的是以用户身份运行构建作业,而不是Jenkins守护进程。如果您看到问题1,它与匿名运行的构建相关,而不是守护进程本身。您好Commanda,此外,您还需要更改权限
    sudo chmod-R 755/path/to/folder
    此外,uou还需要更改包含jenkins的配置文件user@7dr3am7.. 需要更改哪些文件权限?配置在哪里?需要做哪些更改?我收到以下错误“stderr:主机密钥验证失败”。在执行组名和用户名更改后,我得到以下消息:launchctl:对文件的权限可疑(跳过):/Library/LaunchDaemons/org.jenkins-ci.plist未找到任何要加载的内容,这不是意外的,某人如何“使用”您的帐户?任何地方都没有授权。Jenkins可能需要您的密码或其他什么,我们可以把它放在哪里?在将您的用户名添加到GroupName和username后,您需要做的是:“上帝保佑”其他人知道,并且希望知道操作系统是如何工作的。因为我很高兴我没有!为了执行一个简单的操作,你应该知道大量愚蠢的规则和授权,你会得到一颗金星。在尝试了几个小时不同的解决方案后,这是最简单的实现,并且第一次成功。我现在可以回家了
        <key>GroupName</key>
        <string>me</string>
    ...
        <key>UserName</key>
        <string>me</string>
    
    sudo launchctl unload -w /Library/LaunchDaemons/org.jenkins-ci.plist
    sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist