jenkins迁移报错处理

1.流程

新服务器安装jenkins——停止新旧两台服务器的jenkins——拷贝jobs、plugins、users三个文件夹和config.xml文件——新服务器启动

注:jobs文件夹拷贝之前可以先清理一下构建历史里的jar文件

进入jobs文件夹下执行

find  . -name ".jar"   ——列出当前目录下的.jar文件

find  . -name ".jar"|wc -l ——获取当前目录下的.jar文件数量(如有构建记录此时应为大于0的数)

find  . -name ".jar"|xargs rm -rfv ——找到当前目录下的.jar文件并且删除

find  . -name ".jar"|wc -l    ——获取当前目录下的.jar文件数量(此时应为0)

 

2.问题

其实就是安装然后拷贝然后启动,很简单的呀。

新服务器安装完的时候尝试访问还是可以访问的。

可是拷贝完以后启动不起来,报了一个错,类似于下面的内容,当时没有截图,处理了好几天都没有截图。。每次都以为很简单就要解决了

com.thoughtworks.xstream.mapper.CannotResolveClassException: com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategyat

Caused: java.io.IOException: Unable to read /var/lib/jenkins/config.xml

然后各种找资料,各种方式重新拷贝,折腾了好久就是不行。

然后看了一个说可以把config.xml删了,结果看到了一点成效,虽然还是没起来,但是错误改变了,变成了无法创建builds目录并且无法创建成功。

然后再开始着手解决这个问题,手动创建了builds目录也不管用呀。

然后又尝试把config.xml文件里的验证策略部分删 了,还是不行。。。。还是说找不到builds目录

 

3.解决

最终最终,居然是权限的问题!!!!!

我从旧服务器拷贝过来的文件是用root操作的,也就是root权限,然后jenkins的启动用户是在配置文件里设置的,就算是用root用户执行service jenkins start命令,启动的时候也是用jenkins用户去执行,结果就是访问不了jenkinshome下的文件夹,然后就出现了各种问题。

chown将根目录修改为jenkins用户后,启动正常。

用root账户启动的时候也考虑过会不会启动有问题,尝试切换到jenkins账户,结果是不能切换的,jenkins在安装的时候会自动创建一个不能登录的账号用来执行一些列操作,然后启动用户也默认为该用户(可以修改)。

 

4.备用

默认日志位置:/var/log/jenkins/

配置文件位置:/etc/sysconfig/jenkins        ——可配置启动用户、端口和根目录位置等内容,安装过程中的配置

根目录下配置文件:config.xml      ——项目相关,使用过程中的配置

jenkins迁移报错处理

上一篇:Lab: Source code disclosure via backup files:通过备份文件泄露源代码


下一篇:Miller-Rabin 素性测试