#1 楼
有很多方法可以做到这一点,但是我认为最简单的方法是对Jenkins Home文件夹进行备份。echo $JENKINS_HOME
例如,如果您只想备份作业,则可以转到:
cd $JENKINS_HOME/jobs
并为该文件夹进行备份。
所有这些配置将是一堆XML文件。 />
/var/jenkins_home
评论
我需要切换到jenkins用户才能访问$ JENKINS_HOME环境变量:sudo su -s / bin / bash jenkins,然后回显$ JENKINS_HOME,对我来说,它是/ var / lib / jenkins
–布莱斯·昆塔(Bryce Guinta)
17/09/25在18:00
备份整个文件夹“ jobs”的问题在于,作业执行也将被复制-这可能意味着许多GB。
–迈克·阿格里乌(Mike Argyriou)
17-10-22在8:56
Jenkins的服务是否应重新启动?
–辛萌
18年5月4日在15:35
Mac OS中的Jenkins主页(默认安装Homebrew):〜/ .jenkins
–chuckSaldana
19年4月13日在14:16
@MikeArgyriou jobs /仅包含作业配置和工件。作业执行位于工作区/中。
– Alex Che
20 Dec 4在20:35
#2 楼
可以在Jenkins主文件夹(jobs/
)中以以下结构找到所有作业(config.xml
)和主配置文件(JENKINS_HOME
):JENKINS_HOME
+- config.xml (jenkins root configuration)
+- *.xml (other site-wide configuration files)
+- userContent (files in this directory will be served under your http://server/userContent/)
+- fingerprints (stores fingerprint records)
+- plugins (stores plugins)
+- workspace (working directory for the version control system)
+- [JOBNAME] (sub directory for each job)
+- jobs
+- [JOBNAME] (sub directory for each job)
+- config.xml (job configuration file)
+- latest (symbolic link to the last successful build)
+- builds
+- [BUILD_ID] (for each build)
+- build.xml (build result summary)
+- log (log file)
+- changelog.xml (change log)
大部分配置均为XML格式,因此支持所有
.xml
文件应该足够。所有设置,构建日志和工件存档都存储在JENKINS_HOME目录下。只需存档此目录即可进行备份。同样,还原数据只是从备份中替换JENKINS_HOME目录的内容。
可以在不停止服务器的情况下进行备份,但是在还原时,请停止服务器。
为了保持一致的备份,最好将
JENKINS_HOME
目录保留在Git存储库下。例如:
cd $JENKINS_HOME
git init
shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a
并将文件推送到外部存储库。您还可以添加以下
.gitignore
文件来忽略某些文件。相关:有没有办法将Hudson / Jenkins配置文件保留在源代码管理中?
评论
您多久创建一次备份?您是否将代码自动推送到git存储库?如果为true,您是否创建了必须手动合并(手动干预)才能进行某些备份完整性检查的请求请求?
– 030
18年4月26日在22:16
@ 030通常在进行一些重大更改之后,当我知道配置是稳定的并且需要备份它时,通常会手动进行此操作,因为Jenkins经常喜欢破坏一些东西,例如自行将Unix的奴隶从unix更改为windows,从表单中删除密码,因此将它们放在git / GitHub中后,我可以轻松地比较并查找丢失的数据,然后将其添加回去或还原某些特定文件。有一些插件可以保持历史记录的更改,但是我发现它没有用。
– Kenorb
18年4月26日在22:19
您将密码存储在git中吗?你加密他们吗?您是否也将管道(也称为管道)用作代码?
– 030
18年4月26日在22:23
@ 030 Jenkins默认情况下会加密密码/凭据,但是您可以轻松地对其进行解密。但是,如果没有主密钥(不应成为备份的一部分)或没有对Jenkins的访问权,其他人将无法使用。我没有使用管道作为代码。
– Kenorb
18年4月26日在22:24
您如何在git中测试此备份的完整性?例如。您启动虚拟机或docker系统,挂载git repo并检查一切是否仍然有效?
– 030
18年4月26日在22:27
#3 楼
如果您的Jenkins作业是在Jenkinsfile中定义的,则可以将其存储在git存储库中,并通过使用Pipeline进行加载。如果您希望将现有作业移至此格式,请手动创建新的Jenkinsfiles。#4 楼
SCM同步配置插件完全可以满足您的需求。与svn或git一起使用以备份您的jenkins核心和作业配置,因此可以轻松跟踪谁进行了更改以及备份。评论
我实际上是$ JENKINS_HOME文件夹的tar,但这看起来好多了。
– MrMesees
17年4月14日在21:18
该插件似乎非常不活跃/已经过时-截至2017年,它真的功能正常吗?
– Tuukka Mustonen
17-10-23在9:35
#5 楼
备份詹金斯数据和主配置的方法很少。最好的备份方法是使用Thinbackup插件。您可以使用cron表达式安排及时的备份。您也可以配置完全备份和增量备份。备份数据和配置的另一种方法是获取jenkins主服务器的磁盘快照。通过安装磁盘并将jenkins config目录链接到磁盘安装点来实现此目的的理想方法。两种情况在此博客文章中都有很好的说明。您将获得更好的配置思路和步骤。
#6 楼
我正在使用来自sue445/jenkins-backup-script
的脚本。它存档Jenkins设置和插件,例如: />
$JENKINS_HOME/*.xml
$JENKINS_HOME/jobs/*/*.xml
$JENKINS_HOME/nodes/*
用法
./jenkins-backup.sh /path/to/jenkins_home archive.tar.gz
# add timestamp suffix
./jenkins-backup.sh /path/to/jenkins_home backup_`date +"%Y%m%d%H%M%S"`.tar.gz
#7 楼
您可以尝试thinBackup插件(即使它没有得到积极维护)(如果您只想进行逻辑备份)(即大多数配置xml文件,作业,节点等)。备份大小不会很大。#8 楼
我需要将Jenkins从一个Windows Server实例迁移到另一个。最终,我设法做到了:停止Jenkins服务(如果可以承受的话)
复制整个Jenkins文件夹(默认为
C:\Program Files x86\Jenkins
)粘贴到新实例上
进入目录并运行
jenkins.exe install
,这会将新粘贴的Jenkins注册为新计算机上的服务,并且将100%相同。
如果这行得通,那么如果为了将来的安全而需要备份,请将Jenkins文件夹复制到某个地方。它将像快照一样工作。
评论
您尝试了什么?我尝试过了。