日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

统计gitlab代码行脚本_一点也不复杂, GitLab Webhook 自动部署代码

發布時間:2025/3/19 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 统计gitlab代码行脚本_一点也不复杂, GitLab Webhook 自动部署代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

項目使用了gitlab托管,以前部署代碼都是登錄服務器,然后git pull代碼。這樣每次需要發布代碼,都需要登錄,太繁瑣。很早就了解到 gitlab支持 webhook,能夠自動同步代碼。今天嘗試搭建成功了。

原理介紹

  • 配置gitlab當push動作的時候,訪問服務器上的一個鏈接比如pangxieke.com/tb.php

  • tb.php里面寫著一行代碼,會讓服務器git pull相應項目的代碼到web目錄。

  • pull結束,代碼就在web目錄了,我們只要重新訪問網站就可以了。

  • 核心就是push的時候,gitlab會調用服務器上的腳本,服務器上的腳本就會從git重新拉取項目文件。同時還需要加入安全性的設計。

    配置ssh密鑰

    先在服務端生成一對你的SSH密鑰,因為之后服務器要用ssh方式免賬號密碼從gitlab上pull代碼。用ssh-keygen在服務器上生成密鑰,或者你已經有密鑰了就跳過這一步。

    因為項目配置的nginx和php的用戶為www,所以代碼執行時以www用戶,所以需要www用戶的ssh密鑰

    服務器添加www的密鑰

    修改www用戶,允許登錄,項目配置完成后,再修改回nologin

    ;www:x:22:22:www:/var/www:/usr/sbin/nologin
    www:x:22:22:www:/var/www:/bin/bash

    su www
    cat ~/.ssh/id_rsa.pub

    //如果沒有
    ssh-keygen

    gitlab中配置ssh密鑰

    有了密鑰之后,復制你的公鑰,在你的gitlab profile個人資料里,找到SSH的目錄,粘貼保存進去就可以了。這樣gitlab上就有了你web服務器的公鑰了,就可以正常SSH了。

    也可以使用部署密鑰。不同的項目,可以共用相同部署密鑰,但記得在對應項目設置中啟動此密鑰

    服務器腳本

    先使用www用戶調用sh腳本,如果成功,下一步是通過php執行腳本。
    這里我們先使用www用戶測試,需要用www用戶登錄服務器測試。

    su www

    如果不能成功,可能是設置了www用戶為nologin,使用上述方法開啟即可。

    /home/www 下放了1個sh腳本, 內容如下

    #!/bin/bash
    cd /home/www/www.pangxieke.com
    /usr/bin/git pull origin master

    //或者 強制pull
    git fetch --all
    git reset --hard origin/master然后使用www用戶執行此腳本,測試是否能夠獲取代碼。如果成功后,下一步就是通過鉤子執行此腳本

    php執行腳本

    php通過exec函數執行腳本代碼tb.php。需要調用exec函數,如果發現不成功,有可能php.ini配置中禁用了exec函數,重新開啟即可//作為接口傳輸的時候認證的密鑰
    $valid_token = '87ea722e507383fb651ff0515b588b';
    //調用接口被允許的ip地址

    $client_token = $_GET['token'];
    $project = $_GET['project']; //多個項目
    $client_ip = $_SERVER['REMOTE_ADDR'];
    $fs = fopen('./auto_hook.log', 'a');
    fwrite($fs, 'Request on ['.date("Y-m-d H:i:s").'] from ['.$client_ip.']'.PHP_EOL);
    if ($client_token !== $valid_token)
    {
    echo "error 10001";
    fwrite($fs, "Invalid token [{$client_token}]".PHP_EOL);
    exit(0);
    }

    $json = file_get_contents('php://input');
    $data = json_decode($json, true);
    fwrite($fs, 'Data: '.print_r($data, true).PHP_EOL);
    //這里也可以執行自定義的腳本文件update.sh,腳本內容可以自己定義。if($project == 'pangxieke'){
    $res = exec("/home/www/tb.sh", $result);
    }else if($project == 'pangxieke2'){
    $res = exec("/home/www/tb2.sh", $result);
    }

    fwrite($fs, 'Data: '.print_r($result, true).PHP_EOL);
    fwrite($fs, '======================================================================='.PHP_EOL);
    $fs and fclose($fs);
    var_dump($result);

    然后通過瀏覽器訪問測試

    www.pangxieke.com/tb.php?token=87ea722e507383fb651ff0515b588b&project=pangxieke

    如果訪問后,能夠返回git信息,就是代表成功。這樣就可以配置gitlab的觸發器

    如果失敗,可以查看auto_hook.log日志

    為支持多個項目 配置了project參數,可以部署多個項目。只需要在gitlab鉤子中配置時,使用不同的project參數。

    www.pangxieke.com/tb.php?token=87ea722e507383fb651ff0515b588b&project=pangxieke
    www.pangxieke.com/tb.php?token=87ea722e507383fb651ff0515b588b&project=pangxieke2

    gitlab鉤子設置

    然后就可以push代碼到倉庫,然后查看代碼是否部署成功

    部署完成記得修改www用戶為nologin

    來源:http://www.pangxieke.com/linux/1252.html

    互聯網、金融、通信 DevOps?轉型落地經驗,就在 GOPS 2020 ·?深圳站

    近期好文推薦:

    重磅!2020 年 DevOps 持續交付標準和技術運營標準評估報名正式啟動!

    遠程辦公條件下,DevOps 如何加快研發交付

    持續交付體系在高德的實踐歷程

    有了自動化就是 DevOps?淺談 DevOps 的反模式

    交付全鏈路數據,蘇寧消費金融在 DevOps 度量設計的思考

    流程可視化的利器:Jenkins BlueOcean

    我只是下了個訂單,鬼知道我在微服務里經歷了什么…

    DevOps 時代的軟件過程改進探討

    震驚!DevOps CI/CD 竟然對抗擊新冠期間的工作開展有這么大的作用?

    “DevOps時代”公眾號誠邀廣大技術人員投稿。

    投稿郵箱:jiachen@greatops.net 或 添加聯系人微信:135 2116 9787(同微信)。

    點擊,立即報名 GOPS 2020?· 深圳站

    你點的每個贊,我都認真當成了喜歡

    總結

    以上是生活随笔為你收集整理的统计gitlab代码行脚本_一点也不复杂, GitLab Webhook 自动部署代码的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日本打屁股网站 | 国产精品一区无码 | v片在线观看 | 与子敌伦刺激对白播放的优点 | 波多野结衣av在线免费观看 | 丝袜一级片 | 日韩中文字幕高清 | 久草久草久草 | 免费在线播放毛片 | 在线看毛片网站 | 8x8ⅹ国产精品一区二区二区 | aaa在线视频| 不卡视频一区二区三区 | 综合激情av | 亚洲成av人片一区二区 | 91国偷自产一区二区三区女王 | 国产精品久久久久久久午夜 | 国产在线视频你懂得 | 一区二区三区人妻 | 天天干网站 | 中文字幕欧美人妻精品一区蜜臀 | 亚洲成a人在线观看 | 日韩h在线 | 777久久久精品一区二区三区 | 特黄一级视频 | 美女网站免费视频 | 国产精品果冻传媒潘 | 国产免费一区二区三区三州老师 | 好吊色视频一区二区三区 | 色综合久 | √8天堂资源地址中文在线 欧美精品在线一区二区 | 国产一级片免费看 | 男人天堂网在线视频 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 可以看污的网站 | 日本免费一区二区三区四区 | 啪啪免费网址 | 伊人天堂网 | 国产97自拍 | 伊人精品一区二区三区 | 日韩一区二区三区不卡视频 | а√中文在线资源库 | 97公开免费视频 | 四虎精品一区二区三区 | 婷婷玖玖 | 在线视频中文 | 在线观看日韩视频 | 富婆如狼似虎找黑人老外 | av一区免费 | 欧美人与动牲交xxxxbbbb | 一级特黄色大片 | 1000部国产精品成人观看 | 国产综合视频一区二区 | 日韩精品视频三区 | 日韩有码第一页 | 久久亚州 | 欧美黄色一区 | 凹凸日日摸日日碰夜夜 | 人妻互换一二三区激情视频 | 女优色图 | 免费av一区二区三区 | av导航网站| 日韩久 | 蜜臀av一区二区三区激情综合 | 一边摸内裤一边吻胸 | 奇米777视频 | 欧美大胆a | 日韩精品在线一区 | 91视频播放| 欧美日韩精品国产 | 日本一级片在线观看 | 久久国色 | 国产欧美一区二区精品性色超碰 | 国产chinese | 性综艺节目av在线播放 | 亚洲午夜毛片 | 美女的诞生免费观看在线高清 | 黄色免费观看网站 | 精品一区二区三区久久 | 精品丰满少妇一区二区三区 | 欧美激情五月 | 亚洲激情中文字幕 | 久热免费在线视频 | 亚洲23p | 国内精品人妻无码久久久影院蜜桃 | 久久久久久无码精品人妻一区二区 | 人人上人人干 | 成人福利在线播放 | 欧美国产在线视频 | 国产精选一区二区 | 少妇被躁爽到高潮 | 日韩一区视频在线 | 精品免费一区二区三区 | 象人高潮调教丨vk | 小宝贝真紧h军人h | 黄色日批视频 | 国产乱偷 | 国产一区二区三区四区在线观看 | 九九爱精品视频 |