【问题标题】:How can I point Jenkins to another .jenkins home directory?如何将 Jenkins 指向另一个 .jenkins 主目录?
【发布时间】:2013-01-03 12:41:31
【问题描述】:

我在 Linux 家中的特定用户下有工作 /.jenkins 文件夹。我想与另一个用户一起启动 Jenkins,但重新使用另一个用户的 .jenkins 文件夹。我怎样才能做到这一点? Jenkins 提供了一些说明,但我不明白 :)

【问题讨论】:

    标签: jenkins


    【解决方案1】:

    我认为这可以帮助你。

    设置环境变量JENKINS_HOME 指向.jenkins 文件夹并运行Jenkins 命令。


    外壳应该像
    export JENKINS_HOME=/usr/jhon/.jenkins
    
    java -jar jenkins.war
    


    批次应该像
      SET JENKINS_HOME=C:\users\jhon\.jenkins
    
     java -jar jenkins.war
    


    Powershell 应该像
    [Environment]::SetEnvironmentVariable("JENKINS_HOME", "${PWD}\.jenkins")
    java -jar jenkins.war
    

    这会将您的主目录设置为current-working-directory + './jenkins'

    【讨论】:

    • 谢谢,成功了。我需要在已经有 Jenkins 的机器上运行前台从属服务器,因此在启动之前在脚本中设置 ENV var。
    • 如果 jenkins 战争是在 tomcat 上运行,则在导出 JENKINS_HOME 后杀死服务器并重新启动。
    • 这将导致错误:无法创建主目录“JENKINS_HOME”。这很可能是权限问题。
    • 使用 Java 选项 -DJENKINS_HOME=... 可以更加紧凑
    【解决方案2】:

    以下是您的选择:

    a) 假设您将 Jenkins 部署到 Tomcat 中,您可以执行以下操作:

    在你的 catalina.home/conf/localhost/jenkins.xml 中

    <?xml version="1.0" encoding="UTF-8"?>
    <Context docBase="/home/enomad/projects/jenkins/jenkins-master/war/target/jenkins" path="" reloadable="true">
     <Environment name="JENKINS_HOME" value="/home/enomad/projects/jenkins-home"
             type="java.lang.String" override="false"/>
    </Context>
    

    b) 您可以导出 JENKINS_HOME=toWhateveryouwant,正如 Harsha 在上一篇文章中提到的那样

    c) 您可以扩展您的 JAVA_OPTS 参数并添加 -DJENKINS_HOME=/path/to/jenkins_home/,如下所述:Jenkins Mailing list

    祝你好运!

    【讨论】:

    • 如果您必须在 Windows 环境中使用 tomcat 服务启动器并且在迁移期间需要有两个 Jenkins 实例,则特别有用。
    【解决方案3】:

    我使用 jenkins 1.639 作为部署在 tomcat 7.0.67 上的战争。我的 JENKINS_HOME 设置为 /home/hims/jenkins

    这是我的/tomcat/bin目录下的setenv.sh文件的入口

    导出 CATALINA_OPTS="-DJENKINS_HOME=/home/hims/jenkins"

    我希望这会有所帮助。

    【讨论】:

      【解决方案4】:

      出于某种奇怪的原因,Jenkins 没有使用我设置的 JENKINS_HOME 环境变量。

      我在tomcat启动脚本(/etc/init.d/tomcat)中添加了这一行。

          $export JENKINS_HOME=/path/to/jenkins_home/
      

      现在 jenkins 指向新的 jenkins 主页 :) 这将非常有用,尤其是当您在云上安装 jenkins 时。 (在 Ec2 或桉树实例上)

      参考:https://wiki.jenkins-ci.org/display/JENKINS/Tomcat

      【讨论】:

        【解决方案5】:

        或者您可以修改 .bashrc 以便在每次启动控制台时设置环境变量,也就是说,如果您使用 bash 启动 Jenkins。

        【讨论】:

          【解决方案6】:

          在 Tomcat 5 中你可以修改 tomcat.conf 并添加路径:

          导出 JAVA_OPTS="-DJENKINS_HOME=/home/jenkins"

          重启 Jenkins。

          【讨论】:

            【解决方案7】:

            通常,您需要为这些文件设置新用户访问的权限。

            请看这里:How to run jenkins as a different user -
            尤其是SagarPeter Tran的回答。

            干杯

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-10-31
              • 1970-01-01
              • 2013-12-29
              • 2015-05-01
              • 1970-01-01
              相关资源
              最近更新 更多