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

系統環境:

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

一、爲何要做自動部署


 
  1.  
  2. #爲什麼要做自動部署,因爲懶啊!!!

  3. #部署Tomcat的在這裏:http://blog.51cto.com/bigboss/2155423


二、配置Gitlab


 
  1.  
  2. #首先,你得有一個代碼倉庫,趕緊到gitlab上創建一個,然後創建個分支並創建一個文件。

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


 
  1.  
  2. #其次,你得配置一個ssh公鑰到gitlab上,這樣才能模擬開發上傳代碼到gitlab。

  3. #至於ssh公鑰私鑰怎麼生成,自己百度去。

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


 
  1.  
  2. #克隆代碼倉庫,然後測試是否能夠上傳代碼到gitlab

  3.  
  4. git clone [email protected]:root/test.git

  5. cd test/

  6. echo 11111 > 1.txt

  7. git add .

  8. git commit -m "add 1.txt"

  9. git push

Gitlab+Jenkins實現自動部署


三、配置Jenkins


 
  1. #打開jenkins頁面

  2. #添加插件:系統管理 - 插件管理

  3. #需要添加的插件:Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、Git Parameter

  4.  
  5. #添加完插件重啓jenkins,開始添加要部署代碼的主機,注意一定是要能夠ssh登陸的用戶。

  6. #添加主機:系統管理 - 系統設置 找到Publish over SSH

Gitlab+Jenkins實現自動部署


 
  1.  
  2. #添加完主機之後,新建一個項目,開始配置構建操作

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


 
  1.  
  2. #配置gitlab,當有代碼提交時,觸發jenkins的部署操作

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


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


 
  1.  
  2. #再次克隆倉庫

  3.  
  4. git clone [email protected]:root/test.git

  5. cd test/

  6. echo '測試Jenkins' > index.html

  7. git add .

  8. git commit -m 'add index.html'

  9. git push

  10.  
  11. #提交之後去jenkins頁面看看

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


小坑:

  • 錯誤提示:

    
     
    1. #很多朋友使用最新版本的gitlab做自動部署時,在增加web鉤子那一步,

    2. #點擊test push events時會報錯:Url is blocked: Requests to the local network are not allowed

    Gitlab+Jenkins實現自動部署

  • 解決方法:
    
     
    1. #這是因爲新版的gitlab爲了安全默認禁止了本地局域網地址調用web hook

    2. #我們在設置裏允許就行,具體步驟如下:

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章