部署Jenkins+Gitlab實現持續集成

Jenkins介紹
Jenkins 只是一個平臺,真正運作的都是插件。這就是 jenkins 流行的原因,因爲 jenkins 什麼插件都有Hudson 是 Jenkins 的前身,是基於 Java 開發的一種持續集成工具,用於監控程序重複的工作,Hudson 後來被收購,成爲商業版。後來創始人又寫了一個 jenkins,jenkins 在功能上遠遠超過hudson。
1、什麼是集成?
指的是代碼由編譯、發佈和測試、直到上線的一個過程。

2、什麼是持續集成?
高效的、持續性質的不斷迭代代碼的集成工作。

3、如何高效準確的實現持續集成
必不可少的需要一套能自動化、並且可視化的平臺來幫助我們。

根據以上幾點來看,Jenkins就是一個可以實現持續集成的平臺。

4、爲什麼是Jenkins來幫助我們實現持續集成?
1)Jenkins是一個開源的、且基於JAVA代碼開發的持續集成系統
因爲含有非常豐富的插件支持,所以我們可以方便的打通版本庫、測試構建環境、線上環境的所有環節。並且豐富友好的通知使用者和開發、管理人員。

2)安裝維護簡單
安裝Jenkins,不太複雜。而且支持通用的平臺。

3)Java應用常用
在企業的軟件構建過程中,JAVA的應用工程稍顯複雜,由於複雜構建和代碼上線、並且服務的重啓。整個過程下來,消耗的時間較多,Jenkins卻能很好的集成maven的編譯方式,而且利用自動化的插件和自定義開發腳本的支持。所以目前廣泛的應用於JAVA工程的持續集成平臺。

接下來用到的所有軟件包大多數是從清華開源鏡像站下載。

一、部署安裝gitlab

1、安裝gitlab,並登錄到web界面創建庫,測試可以上傳下載即可
可參考之前寫的一篇博文持續集成之Gitlab安裝與應用來安裝部署gitlab,根據博文進行到刷新web界面的庫頁面,能夠看到test測試文件上傳成功即可

二、部署安裝Jenkins

1、安裝Jenkins

[root@jenkins ~]# wget https://mirrors-i.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.172-1.1.noarch.rpm
[root@jenkins ~]# rpm -ivh jenkins-2.172-1.1.noarch.rpm 
[root@jenkins ~]# rpm -ql jenkins                 #查看其相應文件的存放路徑
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins
[root@jenkins ~]# sed -i 's/JENKINS_PORT="8080"/JENKINS_PORT="8081"/g' /etc/sysconfig/jenkins                # 修改其監聽端口
[root@jenkins ~]# /etc/init.d/jenkins start             # 啓動jenkins
[root@jenkins ~]# netstat -anput | grep 8081            # 確定端口在監聽
tcp6       0      0 :::8081                 :::*                    LISTEN      49094/java  

2、配置Jenkins的web界面
客戶端訪問Jenkins服務器的監聽端口8081,然後根據提示覆制其管理員密碼。如下:

[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword 
86d28c93461d43f9a06f5822f61fd871

部署Jenkins+Gitlab實現持續集成
接下來可以安裝一些基礎插件,點擊它的推薦安裝即可,如下(我直接上傳我這裏的包到指定目錄,就可以跳過這個步驟了,可以下載我的包(提取碼:357v),進行和我一樣的操作):
部署Jenkins+Gitlab實現持續集成
我沒有安裝它的推薦插件,我選擇以下的方式安裝:

[root@jenkins ~]# tar zxf jenkins-plugins.tar.gz -C /var/lib/jenkins/
[root@jenkins ~]# /etc/init.d/jenkins restart 

注意:若使用我這種方式安裝,那麼再次訪問時需要斷開外網。
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
經過上述配置,即可看到Jenkins的工作頁面,如下:
部署Jenkins+Gitlab實現持續集成
3、配置Jenkins拉取Gitlab的倉庫代碼
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成

[root@jenkins ~]# cat ~/.ssh/id_rsa                   #複製查看到的所有內容,包括開頭和結尾的“---”行
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAt7+/JKecuR1UbXsRxwD7H5Ndxjm3yH4sSWj9CFLAangDb4LU
jRFy9jRGHT6g0FbfHHlL/PE41NyV/W1aFdZLDCMN3M5NC8+I3JB+38uslPyDKJWC
Xt0CWKZyo+FRTXo3baYllL8QMlhSoDCGqLHz52AQzM2/+eGemQP4Kvax8a5kpyqa
EnWlEbS/+oJSgUl4H6zqTauAncrYpggYkYmhipSAKS011KBZsXtzVQRToRrmhKJB
8eeAFaUdkeou6LGDoa93oR9bDEaeNqM+hc/xcwhtxf4+wc1BzsxKeVdv7ZdwjjqU
CZ+FWhjajwFqn5GL+HubGYQqODlqe5mQoS15RQIDAQABAoIBAHCcxmOLieR1kjmq
tEF3W3CFm3ISC42HrlKrUnAYby6RMOHVl7iBGijD7ribmmk05HYJ7MUvfToPmqj/
rLc3ZzUgAq3xjYyQe3tZ3zf/Fl0UyLlFr+m9n2N/V0ESpQZLwc6kheG8mwuPz8u3
EcAvl6CU4pbx/hcB7HYw1ZZXLMVFpeEFWG8PqOdhgJNujRWFHOlorhExdzj02pHR
okaN2tjGVnyf6dRnMw0TIsrZwyK26fNUScsTRPuBDAL/+zdkb2flyeb1ALz4m1Sv
f8G7sepaf/mwaxqv/zshS/mWbJTHrh1nTjdhINOA1MJtVZ0UjhOZDjeM5LZsiz4V
7yRuxt0CgYEA78Tgw881lnRjfeqozFoIjeTTWib+4+FMXI/+XVm6XiotfHXtIuV5
fo4uYCErI8+wS060wMk/e7HEXyZktqI3a8zRibcbvBNw2NnoXCn5Zo1KTgJ8XiAr
NgBFT30v9sx6NCjBmPQGAnIA8OCsNXb5pceIGb2Z/vTG3YChL2o4ryMCgYEAxDAP
GbAEV4+0+zs3MfTJCRaKm+LI1RcGl4booc4Jf0kRK/NNsrOw9wpNXNgtnO7RapWG
hhO2P9BNBgJa78ruYffm5f/lS/yK1vbsgdCQMrxps8QxdJCBldkD2NkfKsnu1gPU
wHrp9yIvgbE51RKAQhLY6lYm9bJhVmKx4PKksHcCgYEA18ii0/aW7rn+lGLs2USp
8DGg+MChoqqv05oPvSm0rWxeFWX4LfDBv+Dr4b3YGlme+pdx2xMDXConZc6i0y74
m77wUXWGs2P3qmGqWc+40c+UsNJR5VAkM2xY9GnhEccCsBCB80qiYe8B48b/lPpn
QQhq92eIwUi/9Lb/2TFKpGsCgYEAvME4ZhCRvOUIzYaljizjlxjW9zB05YAn2XX1
MGgZfxt/p/eI09xK8QQ6do+PIyQq3A9MxIcGm9L/qD5v27I1NJDc2IEhzcAGnNgp
qKRPeGEKmeizZGD8LH4FU4dikzqBzesVsLMRk7KSXodzCuun9upHRP7qsQ2U1RZT
6gfKJ/UCgYALae1Yao9fTdwryBlpnLJjf2RGGzECueqE6Px/kWuEP62aRJLUWHP2
bfyZ6bYlkj5DMWb8WNlOz8KVOOIuYIyCwJSqXmxvkC5S7ZAHs7bNC6ZA7zLgDxIa
bYW+XbH/zhrkJ0fSPiql690kVu/9ajPpzu/biBkPaeqoUaeyFJKKiA==
-----END RSA PRIVATE KEY-----

部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
可以看到以下頁面即可說明配置無誤:
部署Jenkins+Gitlab實現持續集成

#終端查看本地同步過來的文件:
[root@jenkins ~]# ls /var/lib/jenkins/workspace/web1
README.md  test.txt
[root@jenkins ~]# cat /var/lib/jenkins/workspace/web1/test.txt 
aaaa

三、配置Jenkins+Gitlab實現持續集成

接下來就是這篇文件的關鍵部分了。

在進行下面的配置前,若爲了方便,可以先下載(提取碼:357v)我提供的插件
部署Jenkins+Gitlab實現持續集成
然後你會看到一些報紅的提示,不用在意,下拉頁面,如下:
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
依次上傳我提供的包,順序如下:gitlab-oauth====>>gitlab-plugin ====>> windows-slaves ====>>ruby-runtime ====>>gitlab-hook
部署Jenkins+Gitlab實現持續集成
插件上傳完成後
這裏我附加一下,如果想要在線安裝插件,可以更改其插件來源爲清華大學的Jenkins鏡像站的URL,這裏附加一個更改方法的鏈接,自行參看進行更改即可。
修改過程如下:
部署Jenkins+Gitlab實現持續集成
附加內容至此結束
由於接下來多數操作是點點點,所以就不截圖了,只會截比較關鍵的圖。

依次點擊:系統管理===>>全局安全配置===>>授權策略,然後進行以下操作:
部署Jenkins+Gitlab實現持續集成
依次點擊:系統管理===>>系統設置,下翻找到gitlab,然後進行以下操作:
部署Jenkins+Gitlab實現持續集成
然後進行以下操作:
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成

#在終端生成令牌並複製:
[root@jenkins ~]# openssl rand -hex 10             #複製下面的字符串
5d1df0a52b307e432844

部署Jenkins+Gitlab實現持續集成
回到Gitlab的web頁面,進行以下操作:
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
接下來需要去Jenkins找到我們所需的URL

以下操作在Jenkins的web頁面進行操作:
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
看到上述內容後,我們需要對Jenkins的URL進行拼接,大概是Jenkins的訪問地址+/job....=身份驗證令牌碼。我這裏拼接後的的如下:http://192.168.171.134:8081//job/web1/build?token=5d1df0a52b307e432844
然後回到gitlab的頁面,輸入Jenkins的URL:
部署Jenkins+Gitlab實現持續集成
添加後,下拉頁面,點擊如下以便測試:
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
至此,持續部署便安裝完成了,接下來就是測試了,在終端上提交代碼到gitlab上,查看Jenkins有沒有自動同步,如下:

[root@jenkins ~]# cd test1/
[root@jenkins test1]# echo "abcd" > chixu.txt
[root@jenkins test1]# git add chixu.txt
[root@jenkins test1]# git commit -m "chi xu bu shu test"
[master 52a11ce] chi xu bu shu test
 1 file changed, 1 insertion(+)
 create mode 100644 chixu.txt
[root@jenkins test1]# git push origin master 
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 303 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:root/test1.git
   1da454a..52a11ce  master -> master

Jenkins可以看到以下,即可說明持續部署配置完成了。如下:
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成
部署Jenkins+Gitlab實現持續集成

#本地查看測試
[root@jenkins test1]# cat /var/lib/jenkins/workspace/web1/chixu.txt 
abcd
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章