本文主要記錄Jenkins+Rancher+k8s自動化部署相關配置說明,不涉及rancher和jenkins安裝部署,包含java server項目、WAR項目、前端VUE項目部署配置介紹。
服務器環境信息:
需要在安裝jenkins服務上部署下面相應的軟件,請注意軟件版本,如已經安裝相關軟件,可跳過此章節。
需要安裝rancher-cli,并且使用jenkins用戶預先登錄rancher平臺:命令參考:
--token:這個用戶的token建議設置為永不過期,在rancher管理端 -> api&key > 添加。
建議安裝阿里鏡像,提高編譯速度:
jenkins啟動用戶需要添加到docker組中:
項目主要是java和vue開發的,所以需要安裝Maven Integration plugin插件。
spring boot或者spring cloud自帶容器,以及其它服務類型的java后端應用部署。
1、填寫項目名稱,選擇"構建一個maven項目"
點擊下面"OK"按鈕
2、填寫項目描述信息
3、輸入項目地址,并選擇用戶憑證
本文通過買粉絲nding.買粉絲作為代碼管理平臺,點擊"Add"添加自己賬號憑證(輸入買粉絲ding.買粉絲平臺登陸賬號密碼即可)。
4、配置maven編譯腳本
5、編寫rancher部署腳本
Dockerfile參數說明:FROM:選擇基礎鏡像包,該項目是用java語言開發需要jdk1.8所以選擇openjdk:8ADD:將bRule-deploy-1.0.0.tar.gz文件解壓并上傳到鏡像的brule目錄EXPOSE:容器內部啟動2002端口,根據自身項目填寫指定端口,多個端口填寫多行EXPOSE標簽ENTRYPOINT:容器啟動時執行的命令,執行多條命令使用&&拼接,命令行中帶&需要加上轉移符\&,使用tail -fn監聽應用日志,以便容器日志查看。
用于創建docker鏡像,就好比創建一個已經安裝并且配置好了應用程序的操作系統鏡像。
參數說明:192.168.100.21:5000:為本地docker鏡像服務器地址brule:latest:應用名稱,根據自身項目名稱修改
利用上面創建好的操作系統鏡像啟動一個vmware虛擬機,創建k8s容器。
參數說明:brule:應用名稱,根據自身項目名稱修改,應用名稱規范?(.?)*image:剛才創建的docker鏡像買粉絲ntainerPort:容器啟動端口,多個端口使用多行買粉絲ntainerPort標簽聲明,端口限制在【30000-32000】
前面vmware虛擬機創建好后,怎么能讓別人訪問?這個時候就需要創建一個網絡服務,用于打通路由器與vmware本地虛擬機的網絡。
參數說明:brule:應用名稱,根據自身項目名稱修改port:容器啟動端口nodePort:對外提供服務端口,外部機器訪問
將上面配置好的shell腳本復制到Post Steps -> 執行shell文本域中,并點擊"保存" -> "立即構建"即可部署。
1、進入剛才創建好的jenkins任務,點擊立即構建
2、點擊左下角構建任務,選擇"Console Output",查看構建日志
3、登錄rancher管理平臺,查看構建好的應用
基于J2EE項目的war包部署,前面操作都一致,只是shell部署腳本稍有不同,這里主要詳細說明rancher部署腳本。
Dockerfile參數說明:FROM:選擇基礎鏡像包,war統一使用tomcat容器部署,tomcat:8.5-jre8-slimADD:將operation.war文件解壓并上傳到鏡像的/usr/local/tomcat/webapps/目錄EXPOSE:容器內部啟動8080端口,根據自身項目填寫指定端口,多個端口填寫多行EXPOSE標簽
這里不需要配置ENTRYPOINT標簽,因為tomcat鏡像包中已經有了。
用于創建docker鏡像,就好比創建一個已經安裝并且配置好了應用程序的操作系統鏡像。
參數說明:192.168.100.21:5000:為本地docker鏡像服務器地址operation:latest:應用名稱,根據自身項目名稱修改
利用上面創建好的操作系統鏡像啟動一個vmware虛擬機,創建k8s容器。
參數說明:operation:應用名稱,根據自身項目名稱修改image:剛才創建的docker鏡像買粉絲ntainerPort:容器啟動端口,多個端口使用多行買粉絲ntainerPort標簽聲明,端口限制在【30000-32000】
前面vmware虛擬機創建好后,怎么能讓別人訪問?這個時候就需要創建一個網絡服務,用于打通路由器與vmware本地虛擬機的網絡。
參數說明:operation:應用名稱,根據自身項目名稱修改port:容器啟動端口nodePort:對外提供服務端口,外部機器訪問
將上面配置好的shell腳本復制到Post Steps -> 執行shell文本域中,并點擊"保存" -> "立即構建"即可部署。
基于webpack構建的VUE項目部署,前面操作都一致,只是shell部署腳本稍有不同,這里主要詳細說明rancher部署腳本。
Dockerfile參數說明:FROM:選擇基礎鏡像包,前端統一使用tomcat容器部署,tomcat:8.5-jre8-slimCOPY:將/dist目錄上傳到鏡像的/usr/local/tomcat/webapps/fastquery/目錄EXPOSE:容器內部啟動8080端口,根據自身項目填寫指定端口,多個端口填寫多行EXPOSE標簽
這里不需要配置ENTRYPOINT標簽,因為tomcat鏡像包中已經有了。
用于創建docker鏡像,就好比創建一個已經安裝并且配置好了應用程序的操作系統鏡像。
參數說明:192.168.100.21:5000:為本地docker鏡像服務器地址operation:latest:應用名稱,根據自身項目名稱修改
利用上面創建好的操作系統鏡像啟動一個vmware虛擬機,創建k8s容器。
前面vmware虛擬機創建好后,怎么能讓別人訪問?這個時候就需要創建一個網絡服務,用于打通路由器與vmware本地虛擬機的網絡。
參數說明:shutcm-fastquery-web:應用名稱,根據自身項目名稱修改port:容器啟動端口nodePort:對外提供服務端口,外部機器訪問
將上面配置好的shell腳本復制到Post Steps -> 執行shell文本域中,并點擊"保存" -> "立即構建"即可部署。
下載Jenkins包
注意這里直接下載war文件,以Java服務的形式啟動。
啟動命令
啟動日志
訪問本地端口:8090
該頁面會提示初始登錄密碼的位置,查看該文件中初始密碼,并完成登錄。
安裝推薦插件
登錄之后先把推薦的插件裝上。
創建用戶
插件安裝完成之后會提示創建用戶。
這樣初始化完成。
重新啟動:restart
基礎配置
打開: Manage-Jenkins 選項,配置 Global-Tool-Configuration 選項:
配置組件:JDK、Git、Maven,采用開發環境的組件版本;
插件安裝
安裝如下插件:
簡介:基于Jenkins完成本地的Git倉庫項目打包;
保持構建的天數:3天,保持構建的最大個數:10個;
前置 Pre-Steps 步驟,這里執行一次maven版本查看:
構建 Build 步驟,這里直接寫項目的pom路徑,注意執行的maven命令:
后置 Post Steps 步驟,注意選擇構建成功后才執行,自行忽略這里shell語法的不入流組合:
上述配置完成后,打開任務頁面,執行如下操作:
這樣就可以通過jenkins完成本地項目的打包和啟動了。
簡介:通過配置用戶API訪問的token令牌,脫離jenkins控制臺,直接觸發構建任務;
進入用戶面板的設置選項,配置 API Token :
注意這里生成令牌后要立刻復制下來,頁面會提示token無法復現。
任務配置的構建觸發器模塊,設置遠程構建的令牌:
上面已經給到token的使用方式。
通過如下方式,直接觸發上述構建任務的流程:
這里通過腳本直接請求URL的方式觸發流程。
創建MavGit任務,這里不做過多的配置,與本地倉庫相比,只是把倉庫地址換成Gitee地址,只配置倉庫url和分支即可,其他采用默認:
因為是開放的倉庫地址,所以不用配置賬號密碼,默認指定master分支,然后執行build構建。
上面流程執行完后,查看MavGit的工作空間: /.jenkins/workspace/MavGit :
這里可以明顯發現,倉庫的代碼已經被pull下來,并且完成了自動打包流程,后續結合shell腳本完成jar啟動管理即可。
同系列文章 : 服務部署發布 灰度模式 自動化流程 消息中間件改造 微服務組件二次淺封裝 源碼倉庫
它是基于Java開發的一種持續集成工具,用于監控持續重復的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。
有了它你可以免除手工編譯,發布代碼,上線更容易。節省的時間你可以喝杯咖啡,放松一下 ^_^
道路千萬條,熟悉第一條,我這里使用 R