使用宝塔的git配合webhook实现自动拉取代码

本文详细描述了解决在宝塔面板上安装GitLab时遇到的问题,包括配置步骤,生成SSH密钥,设置Webhook以便本地代码修改自动同步到线上。还介绍了如何处理Webhook拉取远程代码失败的情况。
摘要由CSDN通过智能技术生成

#下载
image.png
我这个安装卸载好几次了,卡在“配置”这块
解决办法:停止安装
然后登录服务器命令行运行

chmod 755 /www/server/panel/install/gitlab.sh & /www/server/panel/install/gitlab.sh install

安装之后宝塔后台gitlab也会是已安装状态
完成之后切记服务器一定要开放8099端口
#打开gitlab
点击这个访问地址即可
image.png

修改密码

登录之后把C盘下的公钥粘贴在此
新建项目
项目添加成员
#本地部署
此步骤我换了个其他成员账号,按照实际工作多人协同模拟
本地创建仓库

git小乌龟神器
上传成功
image.png

###到此为止,基本的版本控制已经可以了,但是想实现本地改了代码,线上项目也要同步修改,宝塔是有这个服务的,但是收费,对于白嫖的人来说,下面的才是正菜!
#1 安装好git之后,在服务器上生成一个密钥,服务器是可以生成多个密钥的哦
ssh-keygen -t rsa -C "your@email.com" -f ~/.ssh/id_rsa_new
查看密钥
cat ~/.ssh/id_rsa_new.pub
#2 然后把密钥放入到项目的仓库中
image.png
#3 第一次先手动在项目目录中操作一下git命令

cd /www/wwwroot/ 下   //使用git克隆
git clone http://主机地址/项目名称.git  //具体在项目中可以看到,选择http的链接

git config --global user.name "用户名"
git config --global user.email "邮箱"
git config --global credential.helper store

//会生成.gitconfig 的文件,查看
cat ~/.gitconfig  //显示内容

[user]
        name = 输入的用户名
        email = 输入的邮箱
[credential]
        helper = store
//第一次pull会提示输入用户名密码
[root@iZ25mi9h7ayZ test]# git pull
//根据提示输入用户名
//根据提示输入邮箱、密码(不显示)

cat ~/.git-credentials      //生成.git-credentials 隐藏文件

image.png
#4 配置webhook
先输入一个#,然后点击编辑再输入下面的脚本
image.png

#!/bin/bash
echo "================================================================"
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then 
          echo "param参数错误"
          echo "End"
          exit
fi
#git项目路径($1是param后面的参数,指向你的服务器的目录)
gitPath="/www/wwwroot/$1"
#git 网址 (替换成你的git地址)
gitHttp="http://主机地址/zheng/$1.git" 
 
echo "Web站点路径:$gitPath"
 
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                echo "git clone $gitHttp gittemp"
                git clone $gitHttp gittemp
                mv gittemp/.git .
                rm -rf gittemp
        fi
        #拉取最新的项目文件
        echo "拉取最新项目文件"
        #git reset --hard origin/master
        git pull
        #设置目录权限
        chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "该项目路径不存在"
        echo "End"
        exit
fi

在这试实际情况,可能需要重启一下宝塔面板,不是重启服务器哦
#5 gitlab配置git钩子
点击查看密钥
按照提示修改

执行结果

###宝塔面板webhook用git pull拉取远程代码失败解决方案
登录xshall之后重启一下宝塔服务

bt restart
### 如何在宝塔Linux面板中使用云效Flow进行项目部署 #### 准备工作 为了顺利地在宝塔Linux面板上结合云效Flow部署项目,需先完成一些准备工作。这包括但不限于获必要的资源和服务: - **云服务器**:如阿里云或腾讯云服务器。 - **XShell**:用于连接远程服务器的工具。 确保已经准备好上述提到的基础环境[^2]。 #### 安装并配置宝塔面板 安装宝塔面板是简化后续操作的重要一步。通过官方提供的脚本可以快速安装最新版本的宝塔面板,并设置初始访问密码。 ```bash yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ede360a7f9c8d5fa42b1dfbf7beddcff ``` 安装完成后按照提示输入管理员账号及密码登录面板界面[^4]。 #### 创建Python应用环境 进入宝塔面板后,在左侧菜单栏找到“网站”,点击右侧上方的“创建站点”。接着选择“Python”作为运行环境,指定对应的Python解释器版本号以及项目的根目录位置。此过程同样适用于其他类型的Web应用程序。 #### 整合云效Flow实现自动化部署流程 云效Flow是一个持续集成和交付平台,支持多种CI/CD场景下的流水线编排能力。要在宝塔环境中利用云效Flow来自动发布代码变更,建议采如下措施: - **定义构建任务**:编写适合当前项目的`Jenkinsfile`或其他形式的任务描述文件,指明每次提交后的具体动作序列,比如最新的源码分支、执行单元测试、打包镜像等。 - **触发条件设定**:确定何时启动新的构建实例,通常基于Git仓库中的事件通知机制(webhook),也可以手动发起请求。 - **部署策略规划**:考虑采用蓝绿部署或是滚动更新等方式减少停机时间影响用户体验;同时制定回滚方案以便出现问题时迅速恢复至稳定状态。 - **与目标主机通信**:借助SSH密钥认证或者其他安全手段建立从云效到实际承载业务逻辑的服务节点之间的信任关系,允许前者向后者推送更改指令。 最后,将整个部署计划注册到云效平台上,关联相应的GitHub/GitLab地址以及其他必要参数。每当有新改动推送到远端存储库时,便会依照预设好的规则自动触发展开一系列标准化处理步骤直至最终上线生效[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值