前言介紹
gitlab與jenkins的安裝部署請參考之前的文章;這里介紹一下jenkins與gitlab結合的好處。
gitlab可以自己實現CICD功能,jenkins也可以結合其他工具來實現CICD功能,為什么要用jenkins + gitlab的方式來實現。我這里個人推斷:jenkins以插件功能豐富而聞名,gitlab本身就是一套集成工具,這種情況下面所有的操作都在gitlab上面執行,很容易產生資源的瓶頸;其次gitlab屬於分布式版本控制工具,使用方便靈活,擁有的用戶市場大等很多優勢,所以用jenkins + gitlab的方式來實現CICD是比較理想的方案。
下面介紹一下jenkins與gitlab持續集成的環境。
環境
編號 | 主機地址 | 應用名稱 | 版本 |
1 | 192.168.21.39 | jenkins | 2.19 |
2 | 192.168.21.40 | gitlab | 12.3.5 |
部署
jenkins
安裝文檔請參考之前的內容,下面是初次登錄時所需的操作
通過瀏覽器訪問jenkins地址,一般是http://network_ip:8080
選擇自定義插件,我比較喜歡所有的插件自己后續安裝,這樣可以具體的了解大部分插件的功能與依賴
我這里並沒有安裝任何插件
因為我是cicd的測試,並不是jenkins功能的測試,所有我這個地方並沒有做權限的管理
若是沒有dns及hostname相關的設置,這個地方就用ip來設置url即可。
准備漢化jenkins,大家都是中國人,你懂得;Jenkins >> Manage Jenkins >> Manage Plugins >> Available;然后搜索localization,選擇下列的插件進行安裝
安裝gitlab相關的插件:gitlab-hook、gitlab-authentication、gitlab-plugin(注意,gitlab-hook有很多依賴關系,就算你選擇離線安裝也會去在線獲取依賴插件;解決辦法就是先把依賴插件先安裝上。)
離線插件下載地址:https://updates.jenkins.io/download/(好像需要翻qiang,你懂得)
需要注意的是:有一些插件本身有一些安全隱患,具體的隱患需要查看官方相應資料,一般jenkins平台中會給出提示,如下圖:
安裝相應的插件之后還需要到jenkins對應的主機操作系統中安裝git程序,因為jenkins要調用git的接口去檢測倉庫的指針與版本
[root@jenkins ~]# yum -y install git
gitlab
創建憑據;User >> setting >> Access Tokens;
記住上面圖中的Personal Access Token;並添加到jenkins的憑據中去。
新建倉庫,用作測試
jenkins
在jenkins全局模式里面配置gitlab的用戶令牌驗證;jenkins >> 系統設置 >> Gitlab;在Gitlab處進行配置,如下圖;
在jenkins端添加gitlab的憑據,互做綁定;新建項目 >> 源碼管理 >> 添加憑據 >> 構建觸發器 >> 創建webhook;
注意:這個上面用的是用戶名與密碼。
創建構建觸發器
上面圖中的這兩個東西非常重要,等下都要用到。記得保存應用!!!
gitlab
在倉庫中添加webhook;projects >> 選擇倉庫 >> setting >> Integrations >> 添加綁定 >> Add webhook
測試
在用戶端拉取倉庫,進行代碼提交;之后在jenkins端查看是否有新的項目自動進行構建。若自動構建並且成功,則說明持續集成環境部署成功。
參考文檔:https://rorschachchan.github.io/2018/05/25/Gitlab-Jenkins%E6%90%AD%E5%BB%BA%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90%E7%B3%BB%E7%BB%9F/