迁移jenkins服务器过程

版权声明:原创不易,未经作者允许请勿随意转载!因个人能力和精力有限,难免有疏漏和不足之处,欢迎指正,谢谢~ https://blog.csdn.net/lijing742180/article/details/88418775

本文环境: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 -versiongradle -versiongit -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_HOMEJENKINS_USER 最好跟原 jenkins 服务器一致!不然可能会遇到各种坑……

二、迁移 jenkins 项目

Jenkins 的所有的数据都是以文件的形式存放在 JENKINS_HOME 目录中,不管是迁移还是备份,只需要操作 JENKINS_HOME 就行了。

  • 先 kill 新服务器上的 jenkins 服务;
  • 直接将原服务器中 jenkins 主目录文件夹 copy 到新服务器上相同目录下;
  • 重启新服务器上的 jenkins 服务;
  • 浏览器访问 jenkins,可以看到项目已经同步过来了。

三、验证新服务器项目

通过浏览器进入新的 jenkins 地址,找几个项目构建一下,看是否有报错。

可能会出现如下问题:

  • 检查 jenkins 系统设置中需要自定义的选项,如重要软件位置等;
  • 项目配置中缺少信息,如缺少 git 仓库地址等;
  • git 仓库地址连接不上,检查地址是否正确?是否有配置 SSH 公钥?
  • 有 slave 机时,slave 机是否正常?

其实,仅迁移 jenkins 项目而言,并不复杂,只是涉及到裸机的设置、用户权限处理、多个 slave 机的配置、新 git 仓库的设置等等,遇到了很多坑。

猜你喜欢

转载自blog.csdn.net/lijing742180/article/details/88418775