在Red Hat Linux上更改JENKINS_HOME?

时间:2014-02-17 21:24:09

标签: jenkins redhat

我用这个程序安装Jenkins:

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions

启动并运行后,我发现服务器上的/ var / lib / jenkins分区非常小。我想移动它,但我不想更改它运行的用户。我是Linux新手,我很难过。如何将其移动到我的Home / Public文件夹? “Jenkins”用户似乎没有Home文件夹。它在启动时作为守护进程运行,所以我不知道在哪里配置这些设置。 我可以为Jenkins用户创建一个主文件夹吗?怎么样?

我读过这篇文章:

https://wiki.jenkins-ci.org/display/JENKINS/Administering+Jenkins

但不明白如何“设置新的Jenkins家”。我使用了export命令,并重新启动了服务,但旧的路径仍显示在Manage Jenkins屏幕中。

我已经在stackoverflow上阅读了2-3个类似的问题,但对我来说总是有一个很大的缺失。在哪里找到永久更改路径的文件?

8 个答案:

答案 0 :(得分:35)

这是解决问题的简便方法。首先,将Jenkins目录从/var/lib/jenkins移至/home/jenkins。然后在/var/lib/jenkins处创建指向/home/jenkins的符号链接。当然,在此之前停止Jenkins服务。

sudo service jenkins stop
sudo mv /var/lib/jenkins /home
sudo ln -s /home/jenkins /var/lib/jenkins
sudo service jenkins start

答案 1 :(得分:14)

我设法通过修改/ etc / sysconfig / jenkins文件的内容来更改Jenkins的home位置,如下所示:

JENKINS_HOME="/home/jenkins"

答案 2 :(得分:6)

好的,我仔细阅读了你的问题,让我们看看我们是否可以解决这个问题。我将列出一些您可能知道或不知道的信息。

  1. jenkins装置和jenkins家不是一回事。一个是war文件和jenkins需要运行的其他部分。 jenkins_home是存储数据的地方。默认情况下,jenkins_home位于〜/ .jenkins中。当你启动jenkins时,它会查找一个环境变量来告诉它在哪里找到这些文件。

  2. Jenkins作为一个单独的用户运行,默认情况下是jenkins。这样它就不会妨碍你。 jenkins用户将无法访问您的主目录,因此这将是一个糟糕的解决方案。理想情况下,它将拥有自己的主目录/ home / jenkins。您的主目录可以是/home/jenkins/.jenkins。你说该文件夹不存在 - 如果你无权访问它自己创建它,那就完全没问题,你可以指定任何文件夹。但是,jenkins用户必须拥有该文件夹的所有权才能读取和写入。

  3. 看起来redhat上的Jenkins默认会运行tomcat。有关如何为tomcat设置环境变量的文档是https://wiki.jenkins-ci.org/display/JENKINS/Tomcat

  4. 这一切都是用脚本设置的。https://wiki.jenkins-ci.org/display/JENKINS/JenkinsLinuxStartupScript似乎就是用于此目的的那个。即使你对shell脚本没有任何了解,这也不是太难...带#的行是注释。第一行

    JENKINS_USER =詹金斯

  5. 设置jenkins将使用的用户帐户的名称。再往下看一下,你就会看到这条线

    export JENKINS_BASEDIR=/home/jenkins
    
    export CATALINA_OPTS="-DJENKINS_HOME=$JENKINS_BASEDIR/jenkins-home -Xmx512m -Djava.awt.headless=true"
    

    这可以让你设置一个jenkins应该存在的目录,然后将jenkins_home目录设置为/ jenkins-home。

    对于您的应用程序,您可能希望执行类似这样的操作

    export CATALINA_OPTS="-DJENKINS_HOME=/var/jenkinsmount/home -Xmx512m -Djava.awt.headless=true"
    

    然后在/ var / jenkinsmount / home中存储所有构建数据(这是增长的部分!),同时将其余文件保留在当前位置。

    我没有在redhat上使用过它,但希望我能够解释得足以让你真正了解正在发生的事情,以便你能够实现它!

    其他信息:

    https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Unix+daemon

答案 3 :(得分:5)

我遇到了同样的问题和疑问。 连接一些点我可以修复我的Jenkins,因为在/ var / lib / jenkins下的磁盘中存在相同的问题空间,我将Jenkins移动到一个新的位置。

考虑到我将Jenkins指向非默认端口,以下是我必须遵循的程序。 (我已将此流程应用于2台服务器)

首先,将Jenkins目录从/ var / lib / jenkins移到/ opt / jenkins

sudo service jenkins stop
sudo mv /var/lib/jenkins /opt/

现在,您可以将工作区和构建目录更改为计算机上的任何其他位置。 Jenkins提供了3个预定义变量,可用于指定新位置:

JENKINS_HOME - Jenkins主目录

ITEM_ROOTDIR - 为其分配工作空间的作业的根目录

ITEM_FULLNAME - '/' - 分隔的职位名称,例如“foo / bar”

sudo su jenkins (access as Jenkins user)
JENKINS_HOME=/opt/jenkins
ITEM_ROOTDIR=/opt/jenkins
ITEM_FULLNAME=/opt/jenkins
exit (exit Jenkins user)

现在,编辑jenkins配置

/opt/jenkins$ sudo nano /etc/default/jenkins

修改以下行

#jenkins home location
#JENKINS_HOME=/var/lib/$NAME (here is the default)
JENKINS_HOME=/opt/jenkins (that is our new location)

更改用户的主目录

sudo usermod -d /opt/jenkins/ jenkins
sudo service jenkins start

答案 4 :(得分:1)

Richard Chen的位置是我在CentOS 6.6系统上找到jenkins文件的地方。

  1. sudo service jenkins stop
  2. mv / var / lib / jenkins / home / mylocation /
  3. (确保新位置拥有正确的所有权和组 - Jenkins)
  4. 修改了文件/ etc / sysconfig / jenkins的内容,如下所示:

    JENKINS_HOME =" /家庭/ mylocation"

  5. sudo service jenkins start

答案 5 :(得分:1)

如果有人在空间方面遇到问题,并且您必须重新安置詹金斯一家,那么只需重申一下::

  1. sudo service jenkins stop
  2. sudo mv /var/lib/jenkins /home
  3. sudo ln -s /home/jenkins /var/lib/jenkins
  4. sudo service jenkins start

效果很好,所以感谢几年前发布答案的人!

答案 6 :(得分:0)

一些命令对我有用,如下所示:

第1步:停止jenkin服务并移动文件夹

systemctl stop jenkins
mv /var/lib/jenkins /whatever/folder
sudo chown jenkins -R /whatever/folder

第2步:在/ etc / default / jenkins中修改jenkins的首页位置

JENKINS_HOME=/whatever/folder/$NAME

第3步:重新启动jenkins服务

systemctl start jenkins

答案 7 :(得分:0)

[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 主文件夹内容从旧主目录复制到新主目录 文件夹。 (使用 cp 命令)。建议复制步骤保留一份备份,而不是移动。稍后您可以删除旧工作区。

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

    注意: - 只是将上面的变量“JENKINS_HOME”设置为不同的路径不会复制 文件从当前 Jenkins 主路径自动转换为新路径。此复制步骤 - 您必须自己手动完成。