云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

腾讯云_百度云资源_好用

小七 141 0

为什么智能、高效的备份和恢复技术对Jenkins生产服务器至关重要

来自Jenkins/Hudson创始人kohsukekawaguchi的提示:如果你像我或其他典型的人一样,你可能一直在推迟备份,因为你有更重要的事情要担心。但是,你肯定知道,有后援是非常重要的,迟做总比不做强!除了灾难恢复之外,备份也是防止意外配置更改的有用保险,这些更改可能会在执行后很长时间内被发现。常规备份系统允许您及时返回以找到正确的设置。使用Jenkins来确保可靠、优化的生产操作的一个关键提示是确保您能够跟上备份。即使您已经在运行Jenkins,现在开始备份也不晚。首先,让我们看一下备份计划。Jenkins将所有内容存储在Jenkins主目录下,$Jenkins\u Home(要找到$Jenkins_Home位置,请转到Configure System菜单),因此最简单的备份方法就是简单地备份整个$Jenkins\u Home目录。即使您有一个分布式的Jenkins设置,您也不需要备份从端的任何内容。另一个备份计划问题是是否在不让Jenkins离线的情况下对实时实例进行备份。幸运的是,Jenkins被设计成可以很好地进行实时备份——配置更改是原子性的,因此可以在不影响运行实例的情况下完成备份。现在,让我们看看如何优化备份。优化1:备份$JENKINS_HOME的一个子集尽管$JENKINS_HOME是您需要备份的唯一目录,但有一个问题:这个目录可能会变得相当大。为了节省空间,请考虑您真正需要备份此目录的哪些部分,并有选择地备份它们。您的大部分数据(包括作业配置和过去的归档记录)都位于/jobs目录中。/jobs目录保存与您在Jenkins中创建的所有作业相关的信息。它的目录结构如下:/jobs/*builds(buildrecords)builds/*/archive(archived artifacts)workspace(签出工作区)/builds目录存储过去的构建记录。因此,如果您只对配置感兴趣,就不要备份构建。或者,您可能需要保留构建记录,但可以丢弃归档的工件(实际上是生成的二进制文件)。您可以通过排除构建/*/archive来实现这一点;请注意,这些构件可能相当大,排除它们可能会带来大量的节省。请注意,以下目录包含可以轻松重新创建的位,因此您不需要在备份中包含这些位:/war(分解的war)/cache(下载的工具)/tools(提取的工具)最后,workspace目录包含您签出的版本控制系统的文件。通常这些目录可以安全地丢弃。如果您需要恢复,Jenkins总是可以执行干净的签出,因此通常不需要备份您的工作区。优化2:使用操作系统级别的快照如果您希望在备份中获得最大的一致性,请使用文件系统中的快照功能。虽然您可以进行实时备份,但它们需要很长时间才能运行,因此您可能会冒着在不同时间点获取不同数据的风险。。。这可能是一个真正的问题,也可能不是。快照解决了这个问题。许多文件系统允许您拍摄快照,包括Linux逻辑卷管理器(LVM)和solariszfs(这也允许您进行增量备份)。一些独立的存储设备还允许您在存储级别创建快照。现在,让我们测试并恢复。最糟糕的莫过于以为自己有备份,但当灾难来临时,却发现自己实际上无法恢复。所以值得测试一下,以确保你有一个合适的备份。JENKINS_的主目录是"可重新定位的"–这意味着您可以在任何地方提取它,并且它仍然有效。下面是测试恢复的最简单方法:将备份主目录复制到计算机上的某个位置,例如~/backup_test Set JENKINS_Home作为环境属性,并指向backup_test;例如,export JENKINS_HOME=~/backup_测试运行java-jar詹金斯战争--httpPort=9999此命令序列将使用backup_test目录获取新的JENKINS_HOME。您可以使用这个Jenkins实例来确保您的备份正常工作。一定要指定一个随机的HTTP端口,这样就不会与实际的端口发生冲突,否则服务器将无法启动!虽然Jenkins的设置和配置并不困难,但是如果您知道可以使您的安装功能最有效的提示、技巧和最佳设置,您将获得更好的结果,支持更多的项目并节省管理时间。这只是一个技巧,但我在我们的文章"优化Jenkins的7种方法"中分享了更多。如果您喜欢幻灯片和我的声音,我们还会在CloudBees资源页(向下滚动到底部)上录制的网络研讨会,以及与会者在网络研讨会期间提出的最重要问题的列表。4月5日,我还将在旧金山湾区为那些想掌握詹金斯的人举办一个培训班。如果你还有其他与詹金斯有关的话题,请随时留言!