使用coding + webhook實現自動部署


coding 是什么?

  類似github,應該說是封裝github功能的代碼管理平台,國內私有庫。

webhook是什么?

  webhook是一種api概念,指的是請求來源不是前端,而是推送。使得請求更具有實時性,不需要一直輪詢。

 

我們使用的是coding提供的webhook服務,它監聽我們對代碼庫做的一些操作,事件觸發,然后發送指定請求,服務器接收請求然后做出對應操作。

 

1、coding 新增webhook,監聽push請求

 

 

 

 

 coding上新增webhook完成之后,會發送一條測試請求,且如果有觸發條件,也會發送請求。

 

 如果沒有設置好接受請求的項目,一般請求是不通的。

 

 

 

2、編寫接收請求服務器

  webhook上的url調的就是我們這個服務器上的api。 這個服務器很簡單。網上代碼有很多版本,php版、node.js版、pyhon版。內容都是接收請求,然后執行shell命令。其實實現該功能即可,與語言無關。因為我上述的而語言都不會。

  java編寫:

    簡單構建一個web項目,接收請求,根據請求url執行對應的shell代碼。shell代碼一般內置在linux服務器的指定位置。

    代碼片段: 

                             

                   

 

 

****.sh里面寫的什么呢?

  簡單的構建命令:

    

 

  注意:在服務器上,要對指定用戶賦予該可執行文件的執行權力。

    如:chmod 777 rebuild.sh; 

3、為接受服務所在用戶授權,使其能夠拉取代碼,執行可執行文件

    設置coding免密拉取代碼

      免密拉取代碼也就是使用ssh公私鑰的形式進行交互。

      拿到服務器用戶的公鑰:一般為用戶目錄下的.ssh/id_rsa.pub

        如果沒有,則執行命令生成:        

                                     

 

       將用戶公鑰添加為項目的部署公鑰:

        

 

    添加完之后,試試在服務器能不能免密拉取代碼。如果不能,仍要用戶名密碼,檢查你的代碼是否是以ssh方式進行git數據傳輸的。

    

 

 

基本就是這個樣子了。

  編寫好接受服務器之后,注意測試外網是否可以訪問,需要nginx設置還是開放端口。修改對應好webhook中的url。注意shell文件是否運行報錯,是否有權限運行等等。

 

 

 

 

   

      

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM