1. 程式人生 > >使用 webhooks 實現自動部署

使用 webhooks 實現自動部署

git webhooks 自動部署 shell

工作中常使用 webhooks 來實現自動部署,總寫都放在 oneNote 上面了,體會不到分享的樂趣,現在拿出來進行分享,希望大家在工作中能夠遊刃有余

ubuntu 安裝 git 客戶端

sudo apt install git
查看版本
git --version

從線上克隆代碼

git clone  git 地址

準備鉤子文件

* 創建並修改目錄
    mkdir -p /Data/wwwroot/hooks
    chown -R root:root  /Data/wwwroot/hooks
* 寫入文件:每個項目兩個文件 -- 入口文件+.sh文件
    sudo -Hu apache touch /Data/wwwroot/hooks/funds-v1-update.php
    sudo -Hu apache touch /Data/wwwroot/hooks/funds-v1.sh
    chmod 700 funds-v1-update.php
    chmod 700 funds-v1.sh
    funds-v1-update.php 文件代碼:
        <?php
                passthru(‘bin/sh /Data/wwwroot/hooks/funds-v1.sh‘);
funds-v1.sh 文件代碼:
         #!/bin/bash
        WEB_PATH=‘/Data/wwwroot/crm.funds.com/‘
        WEB_USER=‘root‘
        WEB_USERGROUP=‘root‘

        echo "start master"
         cd $WEB_PATH

        #whoami
     echo "pulling source code ..."

     /usr/bin/git reset --head origin/master
     /usr/bin/git clean -f
     /usr/bin/git pull
     /usr/bin/git checkout master

     echo "changing permissions..."
     chown -R $WEB_USER:$WEB_USERGROUP $WEB_PATH

     echo "finished"

部署公鑰配置

sudo -Hu apache ssh-keygen -t rsa       # 請選擇 “no passphrase”,一直回車下去
復制/root/.ssh/id_rsa.pub的內容並添加到部署公鑰:
        選擇項目 > 設置 > 部署公鑰 > 新建 > 粘貼到下面框並確認

添加 webhooks

選擇 項目 > 設置 > Webhook >新建hook > 復制hooks/funds-v1-update.php 所在的網址 :http://hooks.koo49.com/funds-v1-update.php 
        令牌可選,建議寫上
        稍過幾秒,刷新頁面查看hook狀態,顯示為綠色勾就 OK 了

配置鉤子和項目服務器nginx

    ? 配置 nginx
        ○ nginx 鉤子配置
        ○ nginx 項目配置
        詳見:Nginx 配置虛擬主機三種方法
    ? 配置遠程連接
        ○ sudo -u root git clone [email protected]:yourUrl/crm.funds.com.git
        ○ 首次必須要克隆一次,而且要給apache分配/Data/wwwroot的讀寫權限

使用 webhooks 實現自動部署