記錄一下 如何使用Jenkins實現CI/CD
前提:已有gitlib 並且已經創建完項目
1、Jenkins創建項目 我這裏以maven項目爲例
2、項目 - 配置
此處我以阿里雲gitlib爲例 當然也可以自己搭gitlib 一樣的道理,設置好倉庫url 和 Credentials 這個是連接gitlib倉庫的賬號密碼
阿里雲gitlib賬號在 code首頁 - 設置 - 個人設置
密碼在 code首頁 - 設置 - 密碼 第一次使用 請直接點忘記密碼 然後通過郵箱設置密碼
3、創建遠程觸發webHook
紅線處是我們的gitlib觸發Jenkins的Webhook
4、gitlib設置Jenkins的WebHook
在code 阿里雲首頁 進入一個項目 - 設置 - WebHooks
增加wehoooks後 可以點一下測試 如果返回403則表示 Jenkins不允許匿名訪問 這時候我們要在Jenkins配置一下權限:
進入Jenkins - 系統設置 - 全局安全配置
我們勾選匿名用戶允許觸發任務
現在可以再測試一下 是否返回200 OK
接下來有的同學會問 我git上有多個分支 Jenkins下每個分支一個項目 那我向git倉庫推送 然後觸發Jenkins webhook的時候 Jenkins怎麼知道我是哪一個分支呢,其實Jenkins也想到了這一點 提供了分支識別 我們進入 Jenkins - 項目 - 配置 - 構建觸發器 - 高級展開
如下圖:
include這裏填入分支名稱即可(下面警告說找不到這個分支 不用管它)
好了 這樣Jenkins只會處理當前觸發Push events的分支
5、執行自動構建(CI)
Jenkins拉完代碼之後 默認是不會進行任何操作的 我們要讓他執行自動構建
項目設置:
因爲是maven項目 Jenkins拉完代碼後會自動執行maven構建命令
6、添加構建後的操作
我這裏構建後讓他執行一些命令 讓他執行CD
這裏sshServer 是本地 大家也可以生成sshKey登錄 我這裏爲了方便使用的是密碼 大家如果沒有sshServer 可以去系統設置 - Publish over SSH 設置 創建
7、執行自動部署(CD)
構建完成後臺 自動部署
結合docker思路:
①停止舊容器
②刪除舊容器
③刪除舊鏡像
④構建鏡像
⑤run鏡像
這裏是我的步驟:
這裏使用的是maven的docker插件 其實就是自動寫Dockerfile文件的 大家也可以自己寫Dockerfile哈
PS:我這裏是開發環境 生產環境千萬別這樣幹哈 因爲會造成業務中斷
生產環境思路:
①刪除舊鏡像
②構建新鏡像
③登錄docker私庫
④push鏡像至docker私庫
⑤生產環境手動執行更新
下面是我的步驟 僅供參考
註釋部分是使用docker命令方式 我使用的是maven插件方式 一樣的道理
至此 我們實現了CD即自動部署 也是最簡化版的DevOps 但是小微企業應該夠用了