宝塔WebHook+Gitee自动拉取远程仓库代码

宝塔WebHook+Gitee自动拉取远程仓库代码

    • 步骤
      • 宝塔配置
        • 在宝塔商店安装
        • 钩子内容【本 问采取develop分支,采取ssh免密拉取】
          • 添加hook
      • Gitee仓库配置
      • Git配置ssh密钥
        • 检查密钥是否存在
        • 生成ssh-key 密钥对,包含:公钥、私钥
        • 配置ssh免密登录

步骤

宝塔配置

在宝塔商店安装

宝塔WebHook+Gitee自动拉取远程仓库代码_第1张图片

钩子内容【本 问采取develop分支,采取ssh免密拉取】

宝塔WebHook+Gitee自动拉取远程仓库代码_第2张图片

添加hook
  1. 为方便,名称与下文$1一致
  2. 执行脚本
    #!/bin/bash
    #输出当前时间
    date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
    echo "Start"
    #判断宝塔WebHook参数是否存在  $1 为gitee 钩子 param参数值,为方便多项目管理$1把仓库名、服务器根目录名、钩子名一致
    if [ ! -n "$1" ];
    then
              echo "param参数错误"
              echo "End"
              exit
    fi
    #git项目路径  上面创建的abc目录
    gitPath="/www/wwwroot/$1"
    #git 两种地址都可以  
    #gitHttp="https://gitee.com/pancru/$1.git"
    #使用ssh免密方式更新
    gitHttp="[email protected]:pancru/panchaoru.git"  
     
    echo "Web站点路径:$gitPath"
     
    #判断项目路径是否存在
    if [ -d "$gitPath" ]; then
            cd $gitPath
            #判断是否存在git目录
            if [ ! -d ".git" ]; then
                    echo "在该目录下克隆 git"
                    git clone $gitHttp gittemp
                    mv gittemp/.git .
    				rm -rf gittemp
            fi
           
            #git reset --hard 放弃本地修改
            #git reset --hard FETCH_HEAD,FETCH_HEAD表示上一次成功git pull之后形成的commit点
            #git reset --hard origin/develop
            
            #查看所有分支:git branch -a
            #获取最新记录 
            echo "远程仓库最新记录:" 
            #git fetch 拉取所有更新不同步
            git fetch  --all
            #git fetch origin develop 拉取指定分支,暂时测试打印不到新记录
            
            #git log --graph --all -1
            #git log --graph --all查看所有分支的提交修改
            
             echo "远程仓库最新记录:" 
            #git log remotes/origin/develop --oneline -1  查看拉取最新的一条记录--无格式
            #查看拉取最新的一条记录--有格式
            git log remotes/origin/develop --graph --all -1
            
            echo "本地仓库(不包含未合并内容)简洁最新记录:"
            git log --oneline -1
    		
    
            #拉取更新
            git pull origin develop
            #设置目录权限
            chown -R www:www $gitPath
            
            echo "本地仓库最新记录:"
            git log -1
            
            echo "End"
            exit
    else
            echo "该项目路径不存在"
            echo "本地仓库最新记录"
            git log -1
            echo "End"
            exit
    fi
    
    
  3. 配置好后,查看密钥和并且复制选中内容,放到Gitee仓库的webhook url 文本框中保存激活即可
    宝塔WebHook+Gitee自动拉取远程仓库代码_第3张图片
  4. 配置好宝塔和gitee后,每次触发钩子都可以查看日志是否拉取成功,如下图日志
    宝塔WebHook+Gitee自动拉取远程仓库代码_第4张图片

Gitee仓库配置

宝塔WebHook+Gitee自动拉取远程仓库代码_第5张图片

Git配置ssh密钥

检查密钥是否存在

ls -al ~/.ssh

宝塔WebHook+Gitee自动拉取远程仓库代码_第6张图片

生成ssh-key 密钥对,包含:公钥、私钥

ssh-keygen -t rsa -C "17***@qq.com"

宝塔WebHook+Gitee自动拉取远程仓库代码_第7张图片

配置ssh免密登录

  1. 添加ssh-key私钥到 ssh-agent # eval $(ssh-agent -s)
[root@VM_0_16_centos .ssh]# eval $(ssh-agent -s)
Agent pid 26283
  1. 直接将私钥id_rsa添加到ssh代理中 # ssh-add ~/.ssh/id_rsa
[root@VM_0_16_centos .ssh]# ssh-add ~/.ssh/id_rsa
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
  1. 查看公钥# cat ~/.ssh/id_rsa.pub
[root@VM_0_16_centos .ssh]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPOjZk3gikZ52kw4M+wJhdPlLFbEkKyfSjX0kBZxlkp5YNWGFNr+MIXvpNKwglQmSk1TX3B6dkz71Ue6WxKZPZwc4//t54772AtHAHRKMkSv9k6xxJFhTWuTGL1REITaK5mm8htwhqVVAoGRrK8IENfhVQ6JFvNBBp4oO/j+fYHfu3HEHpkaGIVIwhjME9Xmc+uV1K80D7wjdStJ2e37Ev6ign/5Bj7VSqc3sNeEobCe83OlcqWOhiAXMVz4QUv7YwZw/C6BFxP9CRaLsfmCK5Cyb48SQ8ZPVtiJZOxEtjJ2uRryla1Q+dncr5NdlDLsK+HoEBSPHUd7T1rhnhVrzN 17***@qq.com
  1. 将公钥id_rsa.pub添加到Gitee仓库ssh -T git@“主机ip”验证

你可能感兴趣的:(宝塔,WebHook,Gitee,git)