Jenkins存储目录变更及问题解决记录 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. 一、修改Jenkins存储目录,并创建软连接到原目录
  2. 1.停止服务器上的Jenkins服务
  3. [root@172 ~]# systemctl stop jenkins
  4. 2.保全期间原目录Jenkins存储目录(/var/lib/jenkins)保留,将数据复制到新存储目录(/home/jenkins)后,修改原目录Jenkins存储目录(/var/lib/jenkins)的名字
  5. [root@172 ~]# cp -rf /var/lib/jenkins /home/jenkins #确认复制完成
  6. [root@172 ~]# mv /var/lib/jenkins /var/lib/jenkins.bak #重命名原存储目录
  7. 3.创建软链接
  8. [root@172 ~]# ln -s /home/jenkins /var/lib/jenkins
  9. 4.启动Jenkins
  10. [root@172 ~]# systemctl start jenkins
  11. 二、启动jenkins报错问题记录
  12. 1、报错信息:Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
  13. [root@172 ~]# systemctl start jenkins
  14. Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
  15. [root@172 ~]# systemctl status jenkins
  16. ● jenkins.service - Jenkins Continuous Integration Server
  17. Loaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; vendor preset: disabled)
  18. Active: failed (Result: start-limit) since Tue 2023-02-21 18:59:14 CST; 30s ago
  19. Process: 9388 ExecStart=/usr/bin/jenkins (code=exited, status=1/FAILURE)
  20. Main PID: 9388 (code=exited, status=1/FAILURE)
  21. Feb 21 18:59:14 localhost.localdomain systemd[1]: Failed to start Jenkins Continuous Integration Server.
  22. Feb 21 18:59:14 localhost.localdomain systemd[1]: Unit jenkins.service entered failed state.
  23. Feb 21 18:59:14 localhost.localdomain systemd[1]: jenkins.service failed.
  24. Feb 21 18:59:14 localhost.localdomain systemd[1]: jenkins.service holdoff time over, scheduling restart.
  25. Feb 21 18:59:14 localhost.localdomain systemd[1]: Stopped Jenkins Continuous Integration Server.
  26. Feb 21 18:59:14 localhost.localdomain systemd[1]: start request repeated too quickly for jenkins.service
  27. Feb 21 18:59:14 localhost.localdomain systemd[1]: Failed to start Jenkins Continuous Integration Server.
  28. Feb 21 18:59:14 localhost.localdomain systemd[1]: Unit jenkins.service entered failed state.
  29. Feb 21 18:59:14 localhost.localdomain systemd[1]: jenkins.service failed.</code>
  30. 解决方法:
  31. 排查jenkins安装所需目录是否存在
  32. [root@172 ~]# vim /etc/sysconfig/jenkins
  33. /var/lib/jenkins
  34. /var/log/jenkins
  35. /var/cache/jenkins
  36. 若不存在,创建后重新执行yum install jenkins
  37. 并重新加载服务 systemctl daemon-reload
  38. 启动Jenkins  systemctl start jenkins
  39. 原因分析
  40. 可能出现Jenkins目录不全,或问题2权限不同问题需确认
  41. 2、报错信息:Jenkins throwing error: jenkins.model.InvalidBuildsDir: ${ITEM_ROOTDIR}/builds does not exist and probably cannot be created
  42. 解决方式:
  43. 统一修改jenkins相关目录权限(上个问题查看用户为jenkins)
  44. [root@172 ~]# chown -R jenkins:jenkins /var/lib/jenkins
  45. [root@172 ~]# chown -R jenkins:jenkins /var/log/jenkins
  46. [root@172 ~]# chown -R jenkins:jenkins /var/cache/jenkins
  47. [root@172 ~]# chown -R jenkins:jenkins /home/jenkins
  48. 原因分析
  49. 使用不通用户移动Jenkins相关目录造成的用户不同问题,统一用户后正常
  50. 3、报错信息:java.lang.IllegalStateException: An attempt to save the global configuration was made before it was loaded
  51. 解决方式:
  52. 1. 下载role-strategy.hpi(最新),下载地址:https://updates.jenkins.io/download/plugins/role-strategy/
  53. 2. 将role-strategy.hpi复制到jenkins安装目录的plugins目录下面
  54. 3. 重启jenkins的服务
  55. 原因分析
  56. 升级Jenkins版本后,/var/lib/jenkins/plugins/文件夹中的hpi文件异常,需下载下载hpi文件,并将其放到/var/lib/jenkins/plugins/文件夹.
  57. 4、报错信息:
  58. [root@172 ~]# systemctl start jenkins
  59. Job for jenkins.service failed because the control process exited with error code.
  60. See "systemctl status jenkins.service" and "journalctl -xe" for details.
  61. [root@172 ~]# systemctl status jenkins
  62. 解决方式:
  63. 如果通过 systemctl 不能解决Jenkins重启的问题,那就用Jenkins自带的启停来解决
  64. [root@172 ~]# cd /etc/init.d # 一般在这里
  65. [root@172 ~]# ./jenkins stop #停止jenkins服务
  66. [root@172 ~]# ./jenkins status #检查jenkins状态
  67. [root@172 ~]# ./jenkins start #启动jenkins
  68. 原因分析
  69. Jenkins 如果使用 Systemd 来管理服务,通常会在 /etc/systemd/system/ 目录中找到 Jenkins 的 Systemd 单元文件 jenkins.service ,但是,我并没有在 /etc/systemd/system/ 下看到 jenkins.service ,说明 Jenkins 并没有使用 Systemd 来管理服务,所以 sudo systemctl restart jenkins命令就无法执行Jenkins 安装目录中的脚本 。
  70. 操作 命令
  71. 启动 Jenkins 服务 /etc/init.d/jenkins start
  72. 停止 Jenkins 服务 /etc/init.d/jenkins stop
  73. 重启 Jenkins 服务 /etc/init.d/jenkins restart
  74. 检查 Jenkins 服务的 状态 /etc/init.d/jenkins status
  75. 强制重新加载 Jenkins 服务配置 /etc/init.d/jenkins force-reload
  76. 三、修改Jenkins存储目录,指定新目录为存储目录
  77. 1.停止服务器上的Jenkins服务
  78. [root@172 ~]# systemctl stop jenkins
  79. 2.保全期间原目录Jenkins存储目录(/var/lib/jenkins)保留,将数据复制到新存储目录(/home/jenkins)
  80. [root@172 ~]# cp -rf /var/lib/jenkins /home/jenkins #确认复制完成
  81. 3.修改Jenkins配置文件中指定存储目录参数
  82. [root@172 ~]# vim /etc/sysconfig/jenkins
  83. 将JENKINS_HOME="/var/lib/jenkins"修改为将JENKINS_HOME="/home/jenkins"
  84. 4.修改全局环境变量配置使新存储目录生效
  85. [root@172 ~]# vim /etc/profile
  86. export JENKINS_HOME=/home/jenkins #在末尾添加
  87. [root@172 ~]# source /etc/profile #重新加载全局变量生效
  88. [root@172 ~]# systemctl start jenkins #启动jenkins,如出现问题参考二
  89. 四、Jenkins迁移至新服务器
  90. 1.在新服务器中安装jenkins并首次启动,可访问Jenkins后直接停止jenkins(不用登陆,主要为生成存储目录)
  91. 2.备份旧服务器存储目录中config.xml文件,jobs文件夹,users文件夹和plugins文件夹。
  92. config.xml是存放配置信息的
  93. jobs是存放创建的工程项目的
  94. users是存放用户账信息的
  95. plugins是存放插件的
  96. 3.将备份的config.xml文件,jobs文件夹,users文件夹和plugins文件夹放到新服务器Jenkins存储目录
  97. 4.再次启动新服务器Jenkins,使用与旧服务器相同用户登录