1. 程式人生 > >轉載:Gitlab+Jenkins用鉤子實現自動部署

轉載:Gitlab+Jenkins用鉤子實現自動部署

 

 

系統環境:

  • Gitlab主機
    • IP:192.168.1.2     用ssh金鑰連通兩臺主機ip1.2和ip1.3。
  • Jenkins主機
    • IP:192.168.1.3     用ssh金鑰連通兩臺主機ip1.3和ip1.4。

一、為何要做自動部署


#為什麼要做自動部署,因為懶啊!!!
#部署Tomcat的在這裡:http://blog.51cto.com/bigboss/2155423

二、配置Gitlab


#首先,你得有一個程式碼倉庫,趕緊到gitlab上建立一個,然後建立個分支並建立一個檔案。

Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署


#其次,你得配置一個ssh公鑰到gitlab上,這樣才能模擬開發上傳程式碼到gitlab。
#至於ssh公鑰私鑰怎麼生成,自己百度去。

Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署


#克隆程式碼倉庫,然後測試是否能夠上傳程式碼到gitlab

git clone [email protected]:root/test.git
cd test/
echo 11111 > 1.txt
git add .
git commit -m "add 1.txt"
git push

Gitlab+Jenkins實現自動部署


三、配置Jenkins

#開啟jenkins頁面
#新增外掛:系統管理 - 外掛管理 
#需要新增的外掛:Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、Git Parameter

#
新增完外掛重啟jenkins,開始新增要部署程式碼的主機,注意一定是要能夠ssh登陸的使用者。 #新增主機:系統管理 - 系統設定 找到Publish over SSH

Gitlab+Jenkins實現自動部署


#新增完主機之後,新建一個專案,開始配置構建操作

Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署


#配置gitlab,當有程式碼提交時,觸發jenkins的部署操作

Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署


四、測試提交程式碼是否會部署到遠端主機


#再次克隆倉庫

git clone [email protected]:root/test.git
cd test/
echo '測試Jenkins' > index.html
git add .
git commit -m 'add index.html'
git push #提交之後去jenkins頁面看看

Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署
Gitlab+Jenkins實現自動部署


小坑:

  • 錯誤提示:

    #很多朋友使用最新版本的gitlab做自動部署時,在增加web鉤子那一步,
    #點選test  push events時會報錯:Url is blocked: Requests to the local network are not allowed

    Gitlab+Jenkins實現自動部署

  • 解決方法:
    #這是因為新版的gitlab為了安全預設禁止了本地區域網地址呼叫web hook
    #我們在設定裡允許就行,具體步驟如下:

    Gitlab+Jenkins實現自動部署
    Gitlab+Jenkins實現自動部署