我打算在我們公司建立一個新的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
工作目錄下的方法嗎?或者有沒有辦法配置環境來做到這一點?
另一種替代方法是將您的發佈工件發佈到專用存儲庫,如Nexus。我希望Jenkins儘可能保持無狀態,並使用我的回購作爲發佈記錄。這種方法意味着我不那麼依賴於特定的構建技術,並且不會受到數據丟失的影響 – 2012-08-05 10:13:00
我們使用的是Artifactory,並且我們一定會將我們在Artifactory中創建的罐子/戰爭放在一起,所以其他項目將通過Maven或Ivy 。然而,在Jenkins中保留你傾向於在生產中部署的工件(認爲拉鍊,rpms和耳朵)有很大的優勢。它將這些部署與發展聯繫起來。例如,「我們正在將foo.rpm部署到生產中,鮑勃是否做出了改變?」 「是的,它是在Build#20中完成的,我們正在部署Build#21。」在詹金斯保持文物爲我們提供了一種談論各種版本的語言。 Build#22不穩定。 QA正在測試Build#40。 – 2012-08-06 02:09:18
的確如此。您也可以使用Nexus中的分段套件進行此操作。正如我上面所說,我的選擇是有一個單一的記錄系統。 – 2012-08-06 10:32:38