簡體   English   中英

哪個持續集成系統最容易通過備份在新機器上重新建立?

[英]Which Continuous Integration System is the easiest to reestablish on a new machine from backup?

幾年來我一直很高興使用 Hudson(現在是 Jenkins),我喜歡系統的總體態度——它確實是一個很好的程序——但重點不是我需要運行良好的一件事。

好吧,如果我們的構建服務器出現問題並且我們需要從(整個工作區的)備份磁帶重建它,那么使用 Jenkins 就不容易做到這一點。 由於我們不依賴任何 Jenkins 特定的功能,我正在考慮其他 CI 系統是否有更好的方法。

基本上,當從 git 中提取時,我們有多個相鄰的 Eclipse 項目。 每個構建入口都指向其中一個項目中的 ant 腳本,然后構建該腳本。 我們需要使用 Ant 和 Java 版本的完全靈活性。 這可以很好地在項目某處的“啟動配置”文件中進行描述,因此所需要的只是指向(或者甚至可能是自動發現)所述啟動文件。

如果歷史也可以建立等等,那就更好了,但我真的希望能夠讓工作恢復並運行。

有什么建議嗎?


(注 2013-02-18:我們將構建過程遷移到 Maven。這大大簡化了 Jenkins 配置,並使這個問題變得不那么重要。很高興知道您是否可以從備份磁帶或從頭開始輕松引導 CI 配置(基於存儲在各種 pom 文件中的信息))

備份 Jenkins 相當容易。

  1. 備份所有配置文件。 我有一個每小時運行一次的 Jenkins 作業,掃描任何 config.xml 更改或添加,並在我們的 Perforce 服務器中添加/更新它們。 此外,它使我能夠回滾到舊配置,如果我把配置搞砸了,只需在 Perforce 中進行同步即可。

  2. 備份你的插件。 我只是備份.hpi 文件,再次進入 perforce。 這樣我就不必記住我的服務器上有哪些插件,如果我需要重建它。

  3. 備份您的工作區目錄。 這個我不做,因為我不關心我的 CI 構建,而我的夜間構建存儲在另一台服務器上。 我發現 Jenkins 副本非常慢,因此我將構建腳本中的所有工件/源復制到存檔服務器,該服務器已由 IT 部門每晚備份(它是 san)。 唯一的問題是,我不能將 Jenkins 作業工件指向一個單獨的位置,並讓 Jenkins 將它們鏈接為工件。 我還沒有找到一個插件來做到這一點,而且我一直在寫的插件進展緩慢。 但這並不是太糟糕的權衡。

這 3 個允許我恢復 Jenkins,但沒有日志文件(我真的不需要它們,只要我有 output,tee.exe 是你的朋友),如果我的服務器死了。

這可能不是您問題的直接答案,但是...

我們使用 Jenkins(以前稱為 Hudson)已經一年半了。 我們沒有使用任何 Jenkins 特有的功能,我不會在其他 CI 系統上使用。 然而,在最初通過 buildbot 和 CruiseControl 的配置(對不起,請不要恨我)之后,我發現可用的插件過多以及 Jenkins 的普遍易用性使選擇變得理所當然。 我們現在有 86 個項目正在構建,並且有兩台服務器 - 一台用於開發,一台用於 QA 和發布構建。

至於備份,我們實際上每周備份一次整個 Jenkins 主文件夾(對於兩台服務器)。 每個月一次,我們備份我們所有的虛擬機(整個虛擬硬盤)。

請注意,我們的服務器和所有從屬服務器都是虛擬機。

這樣,如果出現問題,我至少可以輕松恢復作業配置 - 最早的時間是一周。

無論如何,存儲庫都包含所有最新代碼,並且可以將虛擬機恢復到(最多)一個月前的版本。

此外,Jenkins 有一個備份插件 - https://wiki.jenkins-ci.org/display/JENKINS/Backup+Plugin - 這使得至少備份配置非常容易。

考慮到備份不是 CI 系統的主要 function,很可能他們都有自己的備份和恢復怪癖。

只是我的 2 派薩/美分/便士。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM