2012-07-30 83 views
1

我打算在我們公司建立一個新的Jenkins服務器。我想在各種原因(易於訪問,訪問控制等)中保留Jenkins中所有可部署的工件。通過NAS使用Jenkins

如果這些可部署的工件保存在NAS上,該公司寧願選擇。這對我來說沒問題。我可以將Jenkins設置爲使用NAS並簡單地保留整個配置。我擔心的是,由於它是通過網絡連接的遠程驅動器,因此一些項目的構建速度可能較慢。我想我可以配置有問題的作業來使用本地工作目錄來根據需要加快速度。

但是,如果有一個簡單的方法來設置Jenkins,以便工作目錄自動在本地機器上,而其他所有內容都可以在NAS上,那將會很不錯。那需要更少的設置和工作。我不必記得在需要時設置本地工作目錄,而且我不必跟蹤哪些作業有時髦的工作目錄。

我看到兩種方法可以這樣做:

  • 設置詹金斯使工作目錄計算爲一個特定的本地目錄。例如,如果工作在/mnt/nas/jenkins/jobs/foo,工作目錄將是/opt/jenkins/jobs/foo/opt/local/jenkins/foo

  • 以某種方式配置整個系統,以便某些目錄是本地的,而其他的則是在NAS上。例如/opt/local/jenkins/jobs/foo下的所有目錄都在NAS上,/opt/local/jenkins/jobs/foo/workdir是本地存儲。

是否有配置詹金斯自動使用不同的目錄作爲工作目錄,而不是workdir工作目錄下的方法嗎?或者有沒有辦法配置環境來做到這一點?

+0

另一種替代方法是將您的發佈工件發佈到專用存儲庫,如Nexus。我希望Jenkins儘可能保持無狀態,並使用我的回購作爲發佈記錄。這種方法意味着我不那麼依賴於特定的構建技術,並且不會受到數據丟失的影響 – 2012-08-05 10:13:00

+0

我們使用的是Artifactory,並且我們一定會將我們在Artifactory中創建的罐子/戰爭放在一起,所以其他項目將通過Maven或Ivy 。然而,在Jenkins中保留你傾向於在生產中部署的工件(認爲拉鍊,rpms和耳朵)有很大的優勢。它將這些部署與發展聯繫起來。例如,「我們正在將foo.rpm部署到生產中,鮑勃是否做出了改變?」 「是的,它是在Build#20中完成的,我們正在部署Build#21。」在詹金斯保持文物爲我們提供了一種談論各種版本的語言。 Build#22不穩定。 QA正在測試Build#40。 – 2012-08-06 02:09:18

+0

的確如此。您也可以使用Nexus中的分段套件進行此操作。正如我上面所說,我的選擇是有一個單一的記錄系統。 – 2012-08-06 10:32:38

回答

0

我們在我的日常工作中對$ JENKINS_HOME下的某些子目錄使用符號鏈接。在我們的案例中,我們希望將所有作業配置,歷史記錄和發佈的工件存儲在SAN捲上,並將其餘的Jenkins文件保留在本地存儲中。這只是創建從$ JENKINS_HOME/jobs到SAN捲上某個目錄的符號鏈接的問題。

就你而言,它看起來像你想要設置$ JENKINS_HOME指向你的NAS上的一個目錄,但是你的構建的工作空間目錄駐留在本地存儲上。這也很簡單,因爲每個構建的工作空間都保存在一個子目錄中;我認爲這是$ JENKINS_HOME/workspace,對不起,我不能確認,因爲我們的設置使用單獨的構建奴隸,並沒有任何執行者設置在主人。

使用NAS的警告之一字;在切換到SAN之前,我們使用NAS作爲Jenkins,並發現由於Jenkins無法刪除由NAS上的快照功能創建的臨時文件,我們經常會因保存對作業配置的更改而出錯。當我們關閉快照時,問題就消失了。

+1

我最近發現Jenkins在全局配置中實現了兩個新的配置選項。您現在可以指定將工作目錄放置在別處**或**指定構建目錄(所有構建的記錄)的放置位置。這些選項都可以完全符合我的要求。我在上一份工作中使用了詹金斯,並在4月份更新了詹金斯,而這些選擇並不存在,所以他們相當近。感謝您的回覆。 – 2012-07-31 19:45:35

1

我被告知這樣做的方法有兩種:

  • 設置一個奴隸,奴隸可以是同一臺計算機詹金斯服務器上,並有從做所有的基礎之上。奴隸將在本地建立,然後將信息發回給位於NAS上的Jenkins服務器。工作目錄是本地的,因爲它是進行構建的奴隸,但是工件將存在於NAS上,因爲那裏是Jenkins存儲它們的地方。
  • 詹金斯在其一般配置中有兩個新選項。乍一看,我很想念他們。他們位於配置屏幕的最頂端,您必須按下按鈕才能看到它們。一個允許你指定你想要的工作目錄,所以它位於$JENKINS_HOME之外。我可以在NAS上設置$JENKINS_HOME,然後告訴Jenkins將本地目錄放在本地驅動器上。另一個允許我指定建立記錄的位置。我可以保留NAS上的構建記錄(包括存檔的工件),並在本地機器上設置JENKINS_HOME

這正是我一直在尋找的。顯然,其他人需要同樣的東西。