一、场景描述
在自动化过程中,Jenkins
的环境从无到有的搭建难道不大,但是比较耗时。一般科技公司的开发模式是分开发、测试、生产环境的,不同的环境的自动化过程需要相互隔离。所以,搭建 Jenkins
的环境就需要好几套。
我们是否可以考虑,在开发环境创建的 Jenkins
直接克隆到别的环境中,省去中间各种插件安装、配置的重复过程。
这里采用 rmp
安装为例,在开发环境搭建好以后,我们通过查看 Jenkins
的进行,可以看到启动过程中的奥妙
-
启动配置
# 查看 Jenkins 的启动配置 [root@jenkins ~]# ps -ef | grep jenkins avahi 874 1 0 8月31 ? 00:00:00 avahi-daemon: running [jenkins.local] root 9788 9698 0 08:50 pts/0 00:00:00 tail -f jenkins.log root 11642 10594 0 10:28 pts/1 00:00:00 grep --color=auto jenkins jenkins 12017 1 1 8月31 ? 00:16:29 /usr/local/jdk1.8.0_251/bin/java -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --httpPort=8006 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20 --prefix=/jenkins [root@jenkins ~]#
-
信息提取
通过以上进程的查看,可以得到如下信息 1、log 文件目录:/var/log/jenkins/jenkins.log 2、lib 文件目录:/var/lib/jenkins 3、Jenkins项目:/usr/lib/jenkins/jenkins.war 4、Jenkins缓存目录:/var/cache/jenkins/war 5、一些启动调优的信息
二、应用备份
- 备份方案一:手动备份
-
通过步骤一可以了解到,
Jenkins
启动的一些基础目录 -
手动备份
lib
文件目录即可# 进入 lib 文件夹 cd /var/lib # 手动备份(对该目录下的所有文件进行打包) tar -cvf jenkins.tar .jenkins/*
-
保存
jenkins.tar
即可
- 备份方案二:自动备份
-
ThinBackup
是Jenkins
备份还原Jenkins
配置的插件 -
安装
ThinBackup
插件登录
Jenkins
→ 系统管理 → 插件管理 → 可选插件 → 在过滤
栏输入ThinBackup
-
安装好的
ThinBackup
插件可以在系统管理
→ThinBackup
-
在
Jenkins
服务器创建备份目录# 创建保存备份配置的文件夹 mkdir -p /data/backup # 由于 Jenkins 配置了启动用户为 jenkins 为方便 Jenkins 有权限访问该文件夹,需要为该文件夹赋权 chown -R jenkins:jenkins /data/backup
-
配置
ThinBackup
相关信息,保存的路径,多久备份一次 -
点击
Backup Now
开始备份(备份成功与否没有界面提示,可以到目录中去查看)
三、应用还原
- 还原方案一:手动备份还原
-
安装
Jenkins
,以rpm
安装包为例为防止插件不兼容的情况,建议安装的
Jenkins
和备份的Jenkins
版本一致 -
停止
Jenkins
systemctl stop jenkins
-
将备份的
jenkins.tar
文件解压到/var/lib
文件夹下tar -xvf jenkins.tar
-
如果不想保留之前备份的源码包(
war
jar
工程),可以删除workspace
目录下的所有内容cd /var/lib/jenkins/workspace rm -rf *
-
重启
Jenkins
服务systemctl restart jenkins
- 还原方案二:自动备份还原
-
安装
Jenkins
-
在
Jenkins
中安装ThinBackup
插件 -
进入
ThinBackup
插件并设置备份还原的目录 -
点击还原
-
选择还原日期