【问题标题】:How to change home directory of Jenkins?如何更改詹金斯的主目录?
【发布时间】:2012-10-22 22:34:10
【问题描述】:

简单问题:如何更改 jenkins 主目录位置?默认情况下它指向/var/lib/jenkins,而我希望它指向/home/jenkins。我已将我的 $JENKINS_HOME 更改为 /home/jenkins,但这对我没有帮助。

【问题讨论】:

  • 看来修改环境变量后,还需要访问jenkins home(如localhost:8080/jenkins)一次,才能生效,会显示wait a while, ...

标签: jenkins continuous-integration home-directory


【解决方案1】:

按照步骤

  • sudo su
  • service jenkins stop
  • nano /etc/default/jenkins
  • JENKINS_HOME 变量更改为您想要的任何文件夹
  • 保存
  • service jenkins start*

【讨论】:

    【解决方案2】:

    我正在使用 Ubuntu 服务器并使用 Jenkins 版本 (2.277.4 +)。我可以通过以下方式更改 Jenkins 主目录:

    1. /etc/default/jenkins 中的JENKINS_HOME 值更改为所需的文件夹名称。
    2. 更新目标文件夹的权限,使jenkins 用户拥有该文件夹的读、写、执行权限。

    【讨论】:

      【解决方案3】:

      [A] 找到你当前的 jenkins 主文件夹,如果你不知道它在哪里?
      Jenkins -> 管理 Jenkins -> 配置系统 -> 检查标签“主目录”

      [B] 将当前 Jenkins 主文件夹移动到新目录。请按照以下步骤操作:-

      1. 停止 Jenkins 服务 - 通过终止进程

      2. 按照以下方法之一为 JENKINS 设置新的主文件夹。

        a) By default Jenkins home directory is set to ~/.jenkins
        b) "JENKINS_HOME" environment variable setup in operating system.
        c) "JENKINS_HOME" entry in JNDI environment.
        d) "JENKINS_HOME" system property to the servlet container.
                Tomcat context descriptor of the servlet, you can set below field in apache-tomcat-8.5.28/conf/context.xml :
                <Context ...>
                  <Environment name="JENKINS_HOME" value="/path/to/jenkins_home/" type="java.lang.String"/>
                </Context>
        
        e)  If jenkins.war file is deployed in a tomcat server , then even appending below content in bin/catalina.sh will setup JENKINS_HOME.
                    CATALINA_OPTS="-DJENKINS_HOME=/path_to/jenkins_home/"
        
      3. 手动将 Jenkins 主文件夹内容从旧主目录复制到新主目录 文件夹。 (在 windows 中, ctrl + c / v 。在 Unix 中, 使用 cp 命令)。建议不要移动,而是复制步骤保留一份备份。稍后我们可以删除旧的工作区。

      4. 现在启动 Jenkins,然后它将选择新的主目录 来自 JENKINS_HOME 变量中提到的路径。

        注意:- 只是将上面的变量“JENKINS_HOME”设置为不同的路径不会复制 自动从当前 Jenkins 主路径到新路径的文件。这个复制步骤 - 你必须自己做,手动。

      【讨论】:

        【解决方案4】:

        对于我在 RHEL 7.2 上的 Jenkins 2.7.2 上已经启动 jenkins 并配置构建后,我需要:

        1) 更改 jenkins 用户的主目录

        sudo su -
        service jenkins stop
        vi /etc/passwd
        #  change the /var/lib/jenkins to /home/jenkins or whatever 
        

        2) 更改启动脚本中的设置以也找到它

        vi /etc/sysconfig/jenkins
        #   change the JENKINS_HOME to /home/jenkins or what ever
        

        3) 将所有数据复制到新位置(例如:/home/jenkins)

        cd /home
        cp -Rf /var/lib/jenkins .
        chown -R jenkins:jenkins *
        

        4) 重新启动它

        service jenkins start
        

        这对我来说似乎已经完成了。

        【讨论】:

        • 某些系统上没有/etc/sysconfig。它可能是 /etc/init.d
        • 在 Ubuntu 服务器上是 /etc/default/jenkins。
        • 通过第 1 步和第 3 步,您可以合并为一个命令: usermod -m -d /home/jenkins jenkins
        【解决方案5】:

        我尝试设置 PATH 的东西,但它似乎不起作用,因为它可能必须在没有真正的 unix 用户帐户的 Jenkins 用户下。我发现在 /etc/sysconfig/jenkins 中也可以访问该变量,这在我重新启动 Jenkins 时起到了作用。

        【讨论】:

          【解决方案6】:

          要更改 Jenkins 主目录,您只需设置“JENKINS_HOME”环境变量以指向新位置。您还可以将 JENKINS_HOME 设置为系统属性或 JNDI 环境条目,如文档中所述。

          Jenkins Documentation

          【讨论】:

            【解决方案7】:

            Jenkins 通常使用自己的用户运行,
            因此更改该用户的主目录应该可以完成这项工作。

            如果不确定,只需使用“id”、“whoami”或“env”等 shell 命令运行测试作业,即可找到 Jenkins 使用的用户。

            另外,请注意“Started by user anonymous”的消息并不意味着 Jenkins 以匿名用户身份启动 -
            请参阅SagarPeter Tran 的相关答案:

            how to run jenkins as a different user

            【讨论】:

            • 好吧,但是,如果它是一个匿名用户怎么办......在那种情况下我应该寻找什么......??
            • 根据 Jenkins 的启动方式(作为服务或其他方式),您可以更改其用户。另请参阅我编辑的答案。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-11-21
            • 2021-08-24
            • 1970-01-01
            • 1970-01-01
            • 2021-09-12
            • 2013-07-16
            相关资源
            最近更新 更多