DCOS中Jenkins動態Slave環境的配置與構建
在DC/OS中,Jenkins採用Docker in Docker(DnD)模式為Slave主機動態分配資源並在這些Slave節點上運行Job任務。Jenkins的DnD鏡像可以通過自定義來支持不同的編譯環境,因此可以為Java,Node.js,Ruby等等構建不同的Slave主機環境鏡像。這些鏡像可以通過任務標籤進行選擇。
Jenkins Slave DnD鏡像
Maven構建環境
https://github.com/christtrc/docker-jenkins-gitbook-agent
Gitbook構建環境
https://github.com/christtrc/docker-jenkins-gitbook-agent
Docker私有倉庫配置
Jenkins Slave主機以容器運行時,有些任務需要拉取私有倉庫中的基礎鏡像並將編譯後的鏡像推送到私有倉庫。因DnD模式的容器是動態構建的,如果私有倉庫配置的是自簽名證書,為了能夠正確訪問容器私有倉庫,通常需要掛載Agent主機上的Docker配置。
否則,在應用過程中可能會碰到x509: certificate signed by unknown authority的異常信息。
Maven環境
當Jenkins的Job任務中存在Maven構建時,Maven會自動從中央倉庫下載項目的依賴。由於DnD模式的容器是動態構建的,Maven環境位於DnD容器中,每次任務執行都需要下載Maven的倉庫依賴,這會嚴重影響帶寬及項目構建速度,因此必須將Maven倉庫掛載在DnD容器運行的Agent宿主機的磁碟上。
另一個問題是DnD容器在DC/OS集群中是動態漂移的,所以選取的磁碟存儲必須能夠在所有Agent節點之間都能夠共享訪問,基本的方案是使用NFS存儲,也可以選擇採用GlusterFS,Ceph及其它SAN/SNS方案。
SBT環境
與Jenkins Maven編譯環境類似,因為執行Job任務時,每次都重新構建(或重用未釋放的)Jenkins Slave環境,對於項目依賴的一些構件,如果不採用外部存儲,構建任務往往會每次全量下載所有的依賴,導致很長的構建延時。為了解決此問題,需要對Jenkins DnD鏡像設置添加SBT構件緩存路徑的外部卷掛載。
此時,可以將SBT倉庫的配置文件repositories添加到Agent主機的/data/sbt目錄下,根據需要隨時調整,如:
再次說明,為了重用Maven及ivy的本地倉庫,路徑/data最好指向NFS,GlusterFS等公共存儲。
※Hashicorp Vault:安全性與複雜性的平衡
※DCOS中的服務發現與負載均衡
※在DCOS中搭建私有DOCKER鏡像倉庫
TAG:領域修鍊之路 |
※VSCode配置Python編輯器
※Servlet+MyBatis項目轉Spring Cloud微服務,多數據配置修改建議
※ELK 架構之 Logstash和Filebeat 安裝配置
※Windows下BVLC Caffe的安裝與配置
※配置SAP Solution Manager連接監控遠程Microsoft SQL Server
※SpringCloud統一配置中心Config Client
※Jenkins GitLab webhooks配置
※VMware Horizon View Real-Time Audio-Video 相關配置
※Moto One Vision配置曝光
※Cisco路由器Easy VPN的配置
※SpringBoot中如何進行Bean配置
※三星Galaxy Note 9與蘋果iPhone X Plus配置匯總
※SpringBoot使用Nacos配置中心
※Selenium的安裝與Firefox配置
※Centos下安裝配置WordPress與nginx教程
※Spring SpringMVC配置Druid數據源(資料庫連接池)
※如何在 Linux 中安裝、配置和使用 Fish Shell?
※Cisco Packet Tracer中配置單臂路由
※Kolla中配置OpenStac虛機網路vxlan和vlan共存
※高配置實戰利器!全新 Jordan Supreme Elevation 現已發售