文章目录
本文环境:CentOS 7.6
随着公司项目不断增加,原有的 jenkins 服务器配置越发显得捉襟见肘,所以需要把原 jenkins 项目迁移到新申请的高配置服务器上。
因新服务器几乎是裸机,所以需要分以下几步:
- 配置:在新机器上安装各种基础软件;
- 迁移:迁移原 jenkins 项目;
- 验证:在新服务器上运行 jenkins 项目。
一、为新服务器安装必备软件
主要有以下必备的基础软件:
- jdk
- maven
- git
- gradle
- jenkins
- …
1、解决 yum 源连接失败问题
第一次使用 yum 安装软件时,报错"Failed connect to … No route to host":
[app@centos76 nemo]$ sudo yum install lrzsz
...
http://mirrors.tencentyun.com/centos1/7/os/x86_64/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm: [Errno 14] curl#7 - "Failed connect to mirrors.tencentyun.com:80; No route to host"
Trying other mirror.
lrzsz-0.12.20-36.el7.x86_64.rp FAILED
这种情况的解决办法一般是更换 yum 源。
yum 源配置文件:
/etc/yum.repos.d/CentOS-Base.repo
可以尝试更换国内常用的 yum 源地址:
- 163:
http://mirrors.163.com/.help/CentOS7-Base-163.repo
- aliyun:
http://mirrors.aliyun.com/repo/Centos-7.repo
2、安装 jdk
jdk 是 jenkins 的必备环境,为了避免后续项目中的软件版本冲突,最好是跟原 jenkins 服务器中的软件版本一致,有下面两种方式。
2.1 yum 指定版本号
使用 yum list
命令查看 yum 源中提供有哪些版本:
[app@ivyli etc]$ yum list |grep jdk
....
根据查出的可用版本号,使用 yum install 软件完整版本号
命令来安装。
但是,一般 yum 源中提供的可用版本不多。
2.2 源码包安装
如果有备份的源码包,直接 copy 过来最好了,如果没有现成的,就去官网下载需要的版本,并按如下步骤操作:
- 把安装包 copy 到新服务器中,并解压(解压目录要跟原 jenkins 服务器中的目录相同);
- 配置环境变量
~/.bash_profile
- 操作过程中,注意文件及文件夹的权限问题。
java -version
验证。
3、安装 maven、gradle、git
主要步骤同 jdk 的安装,这里我使用的都是源码包安装方式:
- 获取到与原 jenkins 服务器中相同版本的软件安装包;
- 在新服务器中解压到相同的目录下;
- 配置环境变量
~/.bash_profile
- 操作过程中,注意文件及文件夹的权限问题。
mvn -version
、gradle -version
、git -version
验证。
4、安装 jenkins
我用的是 2.121 版本,要根据自己的需要来选择版本号。
- jenkins 官网下载 rpm 包
jenkins-2.121.1-1.1.noarch.rpm
- rpm 命令安装:
sudo rpm -ivh jenkins-2.121.1-1.1.noarch.rpm
- 查看配置文件:
rpm -ql jenkins
- 修改默认配置
在启动 jenkins 之前最好先修改配置文件,默认位于 /etc/sysconfig/jenkins
。
修改用户、端口、工作目录
[app@ivyli ~]$ sudo vim /etc/sysconfig/jenkins
== 修改 JENKINS_HOME:==
#JENKINS_HOME="/var/lib/jenkins"
JENKINS_HOME="/data/jenkins/.jenkins" # 目录必须已存在,不然启动会报错!
== 修改启动用户 JENKINS_USER:==
#JENKINS_USER="jenkins"
JENKINS_USER="root" # 根据实际情况修改,后续 jenkins 会使用该用户执行任务
== 修改启动端口JENKINS_PORT:==
#JENKINS_PORT="8080"
JENKINS_PORT="7080" # 自定义端口号,注意不要跟其它系统冲突
保存后启动 jenkins:
[app@ivyli ~]$ sudo service jenkins start
Starting jenkins (via systemctl): [ OK ]
然后浏览器中访问:http://服务器ip:7080/ ,
进入引导页,按提示配置即可。
查看日志
遇到问题时,要经常查看 jenkins 日志来排查问题。
[app@ivyli ~]$ less /var/log/jenkins/jenkins.log
...
注意:
JENKINS_HOME
和 JENKINS_USER
最好跟原 jenkins
服务器一致!不然可能会遇到各种坑……
二、迁移 jenkins 项目
Jenkins 的所有的数据都是以文件的形式存放在 JENKINS_HOME
目录中,不管是迁移还是备份,只需要操作 JENKINS_HOME
就行了。
- 先 kill 新服务器上的 jenkins 服务;
- 直接将原服务器中 jenkins 主目录文件夹 copy 到新服务器上相同目录下;
- 重启新服务器上的 jenkins 服务;
- 浏览器访问 jenkins,可以看到项目已经同步过来了。
三、验证新服务器项目
通过浏览器进入新的 jenkins 地址,找几个项目构建一下,看是否有报错。
可能会出现如下问题:
- 检查 jenkins 系统设置中需要自定义的选项,如重要软件位置等;
- 项目配置中缺少信息,如缺少 git 仓库地址等;
- git 仓库地址连接不上,检查地址是否正确?是否有配置 SSH 公钥?
- 有 slave 机时,slave 机是否正常?
- …
其实,仅迁移 jenkins 项目而言,并不复杂,只是涉及到裸机的设置、用户权限处理、多个 slave 机的配置、新 git 仓库的设置等等,遇到了很多坑。