【问题标题】:"Unable to create home directory" error when changing JENKINS_HOME更改 JENKINS_HOME 时出现“无法创建主目录”错误
【发布时间】:2017-06-05 20:14:12
【问题描述】:

Jenkins 在 RedHat Linux 机器(AWS 上干净的 EC2 机器)上运行良好,直到我决定更改 JENKINS_HOME。我只是将 Jenkins 目录从 /var/lib/jenkins 移动到 /home/ec2-user/jenkins,然后创建了一个符号链接。 (我按照这个问题的第一个答案:Change JENKINS_HOME on Red Hat Linux?)。

但是当我重新启动 Jenkins 时出现错误:

无法创建主目录“/var/lib/jenkins”。这是最 可能是权限问题。要更改主目录,请使用 JENKINS_HOME 环境变量或设置 JENKINS_HOME 系统 属性。

我尝试在/etc/sysconfig/jenkins 中更改JENKINS_HOME,将其设置为新文件夹(我想这会破坏符号链接的意义?)但我仍然遇到同样的错误

无法创建主目录“/home/ec2-user/jenkins”。

这是出于备份目的,因此我将所有 Jenkins 数据保存在已安装的外部数据存储(AWS 弹性文件系统)中。

【问题讨论】:

标签: linux amazon-web-services jenkins amazon-ec2 amazon-efs


【解决方案1】:

我遇到了同样的问题,所以在这里分享我的解决方案:
用户 jenkins 无权访问文件夹 home/ec2-user/jenkins。您可以通过将用户 jenkins 更改或添加到 owner

来修改文件夹 home/ec2-user/home 的访问权限
sudo chown jenkins /home/ec2-user/jenkins
sudo chmod u+w /home/ec2-user/jenkins

要验证新的所有权,您可以:

ls -ld /home/ec2-user/jenkins

【讨论】:

    【解决方案2】:

    我想通了。此错误一直存在,因为用户“jenkins”需要访问 /jenkins/ 文件夹才能运行进程,但它无法访问此文件夹,因为它属于特定的登录用户。我将挂载更改为 /var/,jenkins 可以作为全局进程访问,它解决了问题。

    【讨论】:

      【解决方案3】:

      错误似乎很明显:“这很可能是权限问题。”

      我假设/home/jenkins 不存在,并且用户jenkins 在/home 中没有写入权限。如果您将 Jenkins 搬家,那么您可能是以 root 身份进行的,只是忘记更新所有者权限。

      您需要创建家,如下所示:

      sudo service jenkins stop
      # make the changes in /etc/sysconfig/jenkins
      sudo mkdir --parents /home/jenkins  # or mv, in your case
      sudo chown --recursive jenkins /home/jenkins
      sudo service jenkins start
      

      【讨论】:

      • 我将整个 jenkins 目录移动到 /home/jenkins,所以它确实存在。尽管如此,我还是逐字执行了这些命令,但并没有解决问题(与以前相同的错误消息)。
      • @ru111 如果您将 Jenkins 搬家,我猜您是以 root (或其他用户)身份进行的。我更新了我的答案:您需要将递归传递给 chown 命令。
      • 谢谢,但错误仍然存​​在。我认为这可能与 AWS 弹性文件系统的权限有关......
      • @ru111 这显然是机器内部的问题。一旦机器启动并运行,AWS 文件系统就不再涉及......在大多数情况下。但我别无选择。对不起。
      猜你喜欢
      • 2015-12-12
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 2015-04-01
      • 2023-03-16
      • 2012-05-12
      • 2019-06-28
      相关资源
      最近更新 更多