gitee自动部署的使用

缘起

给朋友做的小项目,托管在gitee上,每次修改都要登录到服务器上执行命令:

git pull

后了解到git的钩子机制,进而发现了gitee的webhook,现在说下这玩意怎么用。

原理

webhook流程图

  1. 本地执行 git push 命令,push代码到gitee的服务器上。
  2. gitee接收到push请求后,调用我们自己的服务器上的一个接口。
  3. 这个接口下的代码来执行 git pull 和重启服务等命令(如果需要的话) 完成代码的部署。

实操

上面的过程中,我们需要做的就是实现一个接口。这个可以完成拉取代码、重启服务等步骤,如果是php开发的应用,只需要pull代码即可。

实现接口

这个接口可以用自己熟悉的语言开发,比如php,python等脚本语言,简单粗暴。

下面我们来用php写一个demo

demo

新建一个叫做build.php的文件,添加一下内容

<?php

$cmdRes = shell_exec('git pull');

echo $cmdRes;

这个文件中,通过 shell_exec 函数直接执行 git pull 命令,达到同步代码的效果。

ps:这份代码并不完善,需要增加来源验证,日志记录,安全验证等逻辑

排坑

执行用户的权限问题

例如php的项目一般是借助php-fpm来处理请求,这时需要注意php-fpm的配置文件中是配置了一个系统用户来执行逻辑的。需要将这个用户的公钥配置到gitee上,如果这个用户还没有配置公钥,可以通过一下命令来生成。

sudo -u [用户名] ssh-keygen -t rsa -C "xxxxx@xxxxx.com"

这里注意下,如果不清楚php-fpm的用户名,可以通过查看php-fpm进程的方式知道名字

[root@local ~]# ps -ef | grep php
root     13715     1  0 7月23 ?       00:00:04 php-fpm: master process (/etc/php-fpm.conf)
apache   13716 13715  0 7月23 ?       00:00:00 php-fpm: pool www
apache   13717 13715  0 7月23 ?       00:00:00 php-fpm: pool www
apache   13718 13715  0 7月23 ?       00:00:00 php-fpm: pool www
apache   13719 13715  0 7月23 ?       00:00:00 php-fpm: pool www
apache   13720 13715  0 7月23 ?       00:00:00 php-fpm: pool www
apache   15427 13715  0 15:42 ?        00:00:00 php-fpm: pool www
apache   16296 13715  0 16:42 ?        00:00:00 php-fpm: pool www
root     16752 16736  0 18:07 pts/0    00:00:00 grep --color=auto php

我这里的用户名是apache

或者将php代码中要执行的命令修改为

$cmdRes = shell_exec('whoami');
var_dump($cmdRes); exit;

这样调用这个接口也可以知道这个用户名是什么。

最后将公钥配置到gitee上。

文件权限问题

需要将代码的owner全部修改为php-fpm的用户

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Jenkins是一款流行的自动化构建工具,可以用来自动部署Gitee项目。以下是大致的步骤: 1. 在Jenkins中安装Gitee插件,以便能够连接到Gitee仓库。 2. 在Jenkins中创建一个新的构建任务,选择“自由风格项目”。 3. 在构建任务的配置中,选择“源码管理”,然后选择Gitee作为源代码管理工具。输入Gitee仓库的URL和凭据信息。 4. 在构建任务的配置中,选择“构建触发器”,然后选择“轮询SCM”。这将使Jenkins定期检查Gitee仓库是否有新的提交。 5. 在构建任务的配置中,选择“构建环境”,然后选择“执行shell脚本”。在脚本中输入需要执行的命令,例如编译、打包、部署等。 6. 保存并运行构建任务。Jenkins将自动Gitee仓库拉取最新的代码,并执行指定的命令。 需要注意的是,以上步骤仅为大致流程,具体操作可能会因环境和需求而有所不同。建议在实际操作中参考Jenkins和Gitee的官方文档,以确保正确性和安全性。 ### 回答2: Jenkins是一款开源的持续集成工具,具有很好的自动部署功能。Gitee是国内一款非常流行的代码托管平台,许多开发者使用Gitee托管自己的代码并管理项目。本文将介绍如何使用Jenkins实现自动部署Gitee项目。 一、准备工作 1、安装Jenkins服务器; 2、安装Gitee插件; 3、在Gitee上创建一个代码仓库; 4、在Gitee上生成一个SSH公钥,并将其添加到Jenkins系统中。 二、创建Jenkins任务 1、登录Jenkins服务器; 2、点击“新建任务”,选择“构建一个自由风格的软件项目”; 3、输入任务名称; 4、填写代码仓库的SSH地址; 5、选择版本库的分支或标签; 6、填写用户认证信息(包括Gitee的用户名和私钥); 7、选择“Execute shell”或“Execute Windows batch command”以指定构建或部署脚本; 8、保存并离开。 三、构建Jenkins任务 1、点击任务名称; 2、点击“构建触发器”,选择“Build when a change is pushed to Gitee”; 3、点击“保存”并离开。 四、更新代码并触发构建 1、在Gitee上更新代码,推送到分支或标签; 2、等待Jenkins自动触发构建并部署代码。 总结来说,Jenkins自动部署Gitee项目的实现步骤主要是在Gitee上创建代码仓库并生成SSH密钥,然后在Jenkins上创建一个任务并配置任务的构建和部署脚本,最后在Gitee上更新代码并触发构建即可实现自动部署。Jenkins的自动部署功能极大地提升了代码管理和项目部署效率,许多开发者在实际开发中也会应用到这个功能。 ### 回答3: Jenkins是一种自动部署工具,它可以帮助我们快速、自动化地部署我们的代码。Gitee则是国内一个非常流行的代码托管平台,许多团队都选择在Gitee上进行项目管理、代码托管和协作开发。 在使用Jenkins自动部署Gitee项目之前,需要确保一些基础设施已经准备好。首先,你需要一台可以运行Jenkins的服务器。其次,你需要一个Gitee账户,以便可以在Gitee上创建和管理你的项目。最后,你需要一个可用的代码仓库,其中包含需要自动部署的代码。 安装Jenkins 在开始之前,你需要先安装Jenkins。你可以从Jenkins官方网站下载并安装Jenkins。按照官方文档的步骤进行安装即可。 创建Gitee项目 在你的Gitee账户上创建一个新的项目。在创建项目过程中,你需要选择Git仓库初始化方式、默认分支等等。确保在项目创建过程中勾选Git公钥。 设置Jenkins环境 安装好Jenkins之后,你需要设置Jenkins的环境,以便可以自动部署Gitee项目。你可以使用Jenkins插件来配置Jenkins环境。 安装插件 首先,你需要安装一些插件。这些插件可以帮助你完成自动部署的各个步骤。你可以在Jenkins的Plugin Manager中搜索并安装这些插件。 配置插件 安装好插件之后,你需要按照各个插件的要求进行设置。这些设置包括项目名称、版本号、构建环境等等。 设置Git 接下来,你需要在Jenkins中配置Git。你需要提供Git仓库的URL、认证信息、分支等等。 配置构建脚本 在Jenkins中配置构建脚本。构建脚本用于编译代码、运行测试等等。你可以使用各种构建脚本语言,例如Bash、Python等等。 设置自动部署 最后,你需要在Jenkins中设置自动部署。你需要提供目标服务器的IP地址、认证信息、目标路径等等。在完成这些设置后,Jenkins就可以开始自动部署Gitee项目了。 总结 使用Jenkins自动部署Gitee项目可以大大简化了开发流程,提高了团队的生产力和敏捷性。在上面的步骤中,你学习了如何安装Jenkins、创建Gitee项目、配置Jenkins环境、设置Git、配置构建脚本以及设置自动部署。希望这些步骤能够帮助你快速上手使用Jenkins自动部署Gitee项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值