技術要求
docker -- 應用容器引擎
jenkins -- 基于Java開發的一種持續內建工具
github/git -- 代碼托管服務平台
SonarQube -- 代碼品質工具
maven -- 項目管理工具
python -- 需要用到腳本
DingTalk -- 釘釘機器人接收消息通知
機器要求
server1 -- jdk安裝、jenkins安裝(需要使用jdk)
server2 -- docker安裝、git安裝(需要從github拉取最新代碼)、maven安裝
server3 -- mysql資料庫安裝(應用資料庫)
server4 -- SonarQube安裝
實際情況:一台Tecent2核4G伺服器安裝部署所有
運作視訊
配置流程
1 安裝dokcer,docker中部署一個應用、一個資料庫
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 2 jenkins安裝部署,由于機器記憶體限制,jenkins部署到了tomcat
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 3 linux安裝jdk環境,因為jenkins是java開發的,jenkins連接配接應用伺服器/SonarQube伺服器需要依賴java環境
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 4 linux安裝git,因為需要使用git指令下載下傳github倉庫代碼
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 5 linux安裝maven,源碼下載下傳完需要打包代碼
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 6 制作git秘鑰,秘鑰路徑:/root/.ssh
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 7 公鑰配置到github上,因為jenkins伺服器需要有權限下載下傳代碼,測試:ssh [email protected]
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 8 啟動tomcat,通路jenkins
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 9 jenkins控制台建立節點,每個節點對應一台linux伺服器(jenkins伺服器和應用部署伺服器為一台伺服器,不過不影響)
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 10 jenkins控制台建立任務
任務指定節點:
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 綁定git源碼(需要配置ssh私鑰):
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 github代碼送出觸發任務執行:
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 執行shell腳本&配置SonarQube代碼掃描:
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 編寫部署腳本,上述步驟的deploy.sh檔案:
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 釘釘機器人通知:
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 python腳本位置:
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 11 任務執行
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 12 釘釘機器人配置&通知效果
機器人配置:
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 通知效果:
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 13 SonarQube代碼掃描詳情預覽
docker自動化部署_基于docker+jenkins+github+SonarQube實作自動化部署 參考連結
https://www.cnblogs.com/yufeng218/p/8370670.html
https://blog.csdn.net/devops008/article/details/81773736
https://blog.csdn.net/BoomLee/article/details/86676577