系統環境:

  • Gitlab主機
    • IP:192.168.1.2
  • Jenkins主機
    • IP:192.168.1.3

1、爲什麼要作自動部署

 #爲何要作自動部署,由於懶啊!!! #部署Tomcat的在這裏:https://blog.51cto.com/bigboss/2155423 

2、配置Gitlab

 #首先,你得有一個代碼倉庫,趕忙到gitlab上建立一個,而後建立個分支並建立一個文件。 

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

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

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

#克隆代碼倉庫,而後測試是否可以上傳代碼到gitlab git clone git@192.168.1.2:root/test.git cd test/ echo 11111 > 1.txt git add . git commit -m "add 1.txt" git push 

Gitlab+Jenkins實現自動部署


3、配置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實現自動部署


4、測試提交代碼是否會部署到遠程主機

#再次克隆倉庫 git clone git@192.168.1.2: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實現自動部署


小坑:

  • 錯誤提示:html

    #不少朋友使用最新版本的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實現自動部署