一、前言
Jenkins 是一个 Java 语言编写的开源工具,结合持续集成与持续交付相关技术的运用可提升软件开发过程的自动化水平。
Jenkins 从最开始安装到权限设置,插件安装,任务维护等是一个费力的工程,因此定期备份数据的重要性不言而喻。
在本文中,我们将手把手演示如何备份并恢复 Jenkins。
二、备份操作指引
这里推荐自由风格任务类型,即 Freestyle project
选择 “Build Periodically”,然后可以根据需要设置备份时间和频率
例如,25 12 * * * 会在每天白天 12:25 运行任务
在 Build 模块选择 Execute Shell,添加以下脚本内容
为方便读者直接使用,脚本内容如下:
#!/bin/bash
# Jenkins Configuraitons Directory
cd $JENKINS_HOME
# Add general configurations, job configurations, and user content
git add -- .xml jobs//.xml userContent/ ansible/*
# only add user configurations if they exist
if [ -d users ]; then
user_configs=ls users/*/config.xml
if [ -n "$userconfigs" ]; then
git add $userconfigs
fi
fi
# mark as deleted anything that's been, well, deleted
to_remove=`git status | grep "deleted" | awk '{print $3}' `
if [ -n "$to_remove" ]; then
git rm --ignore-unmatch $to_remove
fi
git commit -m "Automated Jenkins commit"
git push -q -u origin master
我们现在已经添加了一个备份所有 Jenkins 数据的任务,所有的备份数据将会存储到服务端的 /var/lib/jenkins 目录。
假如目前有一个用户名为 jenkins,进入此目录,执行以下命令:
cd /var/lib/jenkins && git init
git remote add origin git@github.com:username/new_repo
Jenkins 任务主页,点击 Build now 按键。如果看到以下输出,说明备份任务已成功创建并生效。
二、备份操作指引
cd /var/lib/jenkins && rm -rf *
cd /var/lib/jenkins && git init
git clean -df
git remote add origin git@github.com:username/new_repo
git pull origin master
service jenkins restart
至此,数据已完全恢复。