Jenkins使用文檔(二)
Jenkins+Docker+Gitlab
項目大體構建流程
把Java源碼上傳到gitlab上,maven編譯,docker鏡像構建,而後推送到harbor私有鏡像中心,再自動下載docker鏡像,使用rancher控制docker運行服務,最後測試訪問。node
用容器的形式打包、交付、運行應用程序。能夠在任何地方構建、管理、安全運行應用程序。linux
容器與系統其它部分分隔離開的一系列進程,容器具備可移植性和一致性git
docker就是把應用打包到一個輕量的可移植的容器裏面,而後去交付,運行github
目錄docker
1、Docker安裝(全部主機安裝)apache
2、docker-compose安裝(只須要在主機1上安裝)json
3、Rancher安裝(只須要在主機1上安裝)centos
四、Harbor私有倉庫部署—docker容器管理平臺瀏覽器
五、開始構建Jenkins Pipeline + Docker + Git—Java項目
六、驗證
總體安裝環境說明
本文檔共涉及兩臺服務器。部分環境在前一篇文章中有所說明及安裝過程,此文檔爲了簡化就不作累贅。
本文檔所使用的各軟件版本及系統說明
名稱 |
主機1 |
主機2 |
系統 |
centos 7.2 |
|
主機名 |
www.jenkins.com |
s2.jenkins.com |
IP |
192.169.1.100 |
192.168.1.101 |
CPU |
2核 |
|
內存 |
4G |
|
磁盤 |
40G |
|
Git version |
1.8.3.1 |
|
Java version |
1.8.0_65 |
|
Maven version |
3.6.3 |
|
Jenkins version |
2.210 |
|
Gitlib |
10.3.2 |
|
Docker |
19.03.5 |
|
docker-compose |
1.25.1 |
|
Harbor |
19.03.3 |
1、Docker安裝(全部主機安裝)
Docker 是一個開源的應用容器引擎,基於 Go 語言 並聽從 Apache2.0 協議開源。
Docker 可讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,而後發佈到任何流行的 Linux 機器上,也能夠實現虛擬化。
容器是徹底使用沙箱機制,相互之間不會有任何接口(相似 iPhone 的 app),更重要的是容器性能開銷極低。官網:https://www.dcoker.com
1、配置Docker源
yum-config-manager--add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2、安裝依賴包
yuminstall -y yum-utils device-mapper-persistent-data lvm2
3、安裝與啓動docker
yuminstall docker-ce -y
systemctlstart docker
systemctlenable docker
4、驗證
docker --version
5、配置Docker加速器(可選)
cat /etc/docker/daemon.json<<-'EOF'
{
"registry-mirrors":["https://registry.docker-cn.com"]
}
EOF
配置完成後重啓服務。
sudo systemctl daemon-reload
sudo systemctl restart docker
docker version
2、docker-compose安裝(只須要在主機1上安裝)
Docker是一個開源的容器引擎,它有助於更快地交付應用。方便快捷已是 Docker的最大優點,過去須要用數天乃至數週的任務,在Docker容器的處理下,只須要數秒就能完成。
1、下載安裝
wgethttps://github.com/docker/compose/releases/download/1.25.1/docker-compose-Linux-x86_64
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
chmod+x /usr/local/bin/docker-compose
2、驗證
docker-compose --version
3、Rancher安裝(只須要在主機1上安裝)
Rancher是一個開源的企業級容器管理平臺。經過Rancher,企業不再必本身使用一系列的開源軟件去從頭搭建容器服務平臺。Rancher提供了在生產環境中使用的管理Docker和Kubernetes的全棧化容器部署與管理平臺
Rancher支持多種容器引擎: swarm k8s mesos,還有自帶引擎cattle ,文檔中使用的是cattle引擎。
1、安裝啓動Rancher
dockerrun -d --restart=unless-stopped -p 18080:8080 rancher/server
2、驗證
瀏覽器輸入http://192.168.1.100:18080
3、添加主機
如:小編的客戶機是 192.168.1.101(注意圖片中是100改成101)
4、添加主機驗證
4、Harbor私有倉庫部署—docker容器管理平臺(只須要在主機1上安裝)
Harbor 是由VMware公司開源的企業級的Docker Registry管理項目
官網:https://github.com/vmware/harbor/
Harbor是構建企業級私有docker鏡像的倉庫的開源解決方案,它是Docker Registry的更高級封裝,它除了提供友好的Web UI界面,角色和用戶權限管理,用戶操做審計等功能外,它還整合了K8s的插件(Add-ons)倉庫,即Helm經過chart方式下載,管理,安裝K8s插件,而chartmuseum能夠提供存儲chart數據的倉庫
注意:Harbor的全部服務組件都是在Docker中部署的,全部官方安裝使用Docker-compose快速部署,因此咱們須要安裝Docker、Docker-compose。Docker Registry V2版本, 故Docker版本不小於 1.10,docker-compose不小於1.16
1、Habor下載
wgethttps://github.com/goharbor/harbor/releases/download/v1.9.4/harbor-offline-installer-v1.9.4.tgz
2、解壓
tar-zxvf harbor-offline-installer-v1.9.4.tgz
3、修改配置文件並安裝
修改 harbor/harbor.yml中的hostname ,修改成主機名或者本機IP,大約在第五行
修改 harbor/harbor.yml中的harbor_admin_password,設置密碼,大約在第27行
4、安裝Harbor
shharbor/ install.sh
5、修改docker啓動項文件並重啓dcoker服務(在主機2上修改)
/usr/lib/systemd/system/docker.service修改以下配置
ExecStart=/usr/bin/dockerd--insecure-registry=192.168.1.100
systemctldaemon-reload
systemctlrestart docker
6、登陸驗證Docker registry
dockerlogin -u admin 192.168.1.100 -pxiaowei@1234 # xiaowei@1234 是以前設置的密碼
5、開始構建Jenkins Pipeline + Docker + Git—Java項目
構建此項目所涉及到的Jenkins插件以下:
git
pipeline
extended choice parameter
docker
rancher
1、構建Pipeline項目
登陸jenkins,點擊「新建」,任務名稱自定義(個人叫作pipeline-docker-java)
選擇「構建一個流水線(pipeline)項目」
點擊「肯定」
描述,自定義
構建觸發器、高級項目選項都默認
流水線(pipeline) 定義選擇pipeline scrpt
其pipeline腳本內容以下:腳本生成詳見 pipeline語法
node{ stage('拉取代碼') { git credentialsId: 'd560a335-5a3e-4f47-bfde-82f0137c2c30', url: 'http://192.168.1.100:9527/root/hello_world.git' } stage('Maven編譯') { dir('./') { sh '/opt/apache-maven-3.6.3/bin/mvn clean install -DskipTests=true' } }
stage('構建鏡像') { dir('./') { sh 'docker login -u admin 192.168.1.100 -p12345678' docker.build("192.168.1.100/project/pipeline-docker-java:${BUILD_ID}").push()
} } stage('發佈-部署docker鏡像至rancher') { rancher confirm: false, credentialId: 'a76db31e-12b8-4e75-877c-66e77a71efad', endpoint: 'http://192.168.1.100:18080/v2-beta', environmentId: '1a5', environments: '', image: '192.168.1.100/project/pipeline-docker-java:${BUILD_ID}', ports: '', service: 'java/pipeline-docker-java', timeout: 50 } } |
發佈-部署docker鏡像至rancher段pipeline命令
git credentialsId: 爲jenkins中保存憑據的登陸用戶id
3、構建前的準備工做
打開瀏覽器登錄 http://192.168.1.100
在Harbor中建立項目小編這裏的項目名是projectà公開
2、開始構建發佈Pipeline-Docker項目
點擊構建按鈕開始構建項目
6、驗證
①、執行結果驗證
②、在客戶機中驗證
一、配置端口自動映射(升級應用)
待應用構建兩次後再升級應用
登陸Rancher—>選擇應用—>所有—>java—>升級
添加映射端口—>升級—>升級完成
驗證:
至此:Jenkins+Pipeline+docker項目構建完成。
本文分享自微信公衆號 - 小偉運維開發(xiaowei-dev)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。