8

在我的公司,我们有三台配置了 100 多个作业的 Hudson CI 服务器。我们正在寻找一种自动化的方式来定期备份作业配置和构建历史。

目前我们有一个 ant 脚本,我们将其配置为作业,但它不容易维护且不优雅。

你们有没有找到一种方法来管理这个?

4

6 回答 6

3

有一个备份插件

我不相信它支持定期备份的调度,但是您可以通过 URL 访问它来触发它(就像其他一些 Hudson 远程 API),在这种情况下,您可以简单地设置一个 cron 作业ping URL。

于 2009-07-17T18:56:00.087 回答
2

我的 Hudson 服务器在 Windows 上运行,所以我为此使用 Robocopy。我让它镜像每个构建服务器的 hudson home 中的所有文件,不包括作业工作区目录。由于备份将转到一个中心位置,因此我在文件服务器上有一个计划任务,该任务每晚运行我的脚本,而 Hudson 服务器不知道该过程。

该脚本在每台 hudson 机器上都有一个条目:

robocopy path-to-buildserver-hudson-home 备份文件夹路径\buildserver-name /ZB /E /NP /R:1 /W:5 "/LOG:%~dp0backup_log.txt" /TEE /XD 工作区

注意:在第一台机器之后,它变成 /LOG+: 而不是 /LOG: 以便下一个附加到日志中。

这会在不删除源中不存在的文件的情况下进行镜像,因此即使 Hudson 设置为在 X 个月或 Y 次构建后删除构建结果,备份仍可能具有完整的历史记录......以及控制台和文件的日志,并且如果它被中断是可以恢复的。这很方便。如果您不希望它保留 Hudson 已删除的文件,您可以使用 /MIR 而不是 /E。

我确信其他平台上也存在类似的可靠副本或镜像工具。如果操作正确,Ant 可能就足够了。

于 2009-07-21T22:53:40.853 回答
2

有很棒的ThinBackup插件。

它仅备份系统配置和作业配置,而不是整个 HUDSON_HOME 目录,并具有类似 cron 的调度。性感!

于 2012-01-12T15:00:02.873 回答
1

我会使用标准的企业服务器备份解决方案来管理它。

或者用 BackupPc 之类的东西自己动手。

或者将配置文件检查到您的版本控制系统中。

于 2009-07-17T19:01:40.700 回答
0

除了 Backup 插件之外,还有 ThinBackup 插件仅备份配置文件(适用于HudsonJenkins

我个人喜欢通过一个系统进行所有系统备份,该系统通常最终是一个 shell 脚本。我为此编写了一个 Jenkins 特定脚本(也适用于 Hudson)。有关更多信息,请参阅https://bitbucket.org/toomasr/jenkins-stuff/src

于 2011-03-28T20:17:28.153 回答
0

我正在使用 Thinbackup,它支持完整备份和差异备份,您可以使用类似 cron 作业的语法来安排它运行备份的时间。它只备份关键配置,因此不需要太多空间。

在以下位置查看更多详细信息: https ://wiki.jenkins-ci.org/display/JENKINS/thinBackup

于 2011-12-29T13:27:03.787 回答