简单的drone+ssh+git部署

自建gitea版本管理服务器,及drone自动化测试和部署工具,使用drone提供的drone-ssh插件用ssh的形式执行git命令部署服务器文件。针对单个服务环境,少量服务器环境非常方便,执行效率高。

概述

基础环境:client + gitea +  drone + instance(lnmp)

过程:client -> push到gitea仓库(rep)-> gitea广播到drone -> drone执行Pipeline -> 通过ssh控制instance执行git clone命令部署文件。

执行过程10秒。首次执行16秒。

环境准备

server准备

server服务器运行gitea+drone,需要docker环境和mysql数据库。

运行gitea和drone的 docker-compose.yml 见这里:gitea-drone docker-compose环境

drone教程:https://docs.drone.io/

instance准备

安装环境,我使用的lnmp环境。lnmp无人值守安装。

然后用lnmp添加vhost,设置vhost的目录。

连接server与instance

server与instance通过ssh连接。

ssh的私钥是在服务器中生成的公钥私钥,公钥推送到instance主机。生成公钥私钥的方法:ssh免密登录

仓库准备

gitea中创建仓库,client push文件到仓库中。登录drone同步仓库,并激活仓库的webhooks,在drone的Setting中设置Secrets的名称private_key,值为ssh私钥。

instance仓库初始化

使用git clone 命令初始化仓库到vhost目录。

push及drone的执行

环境准备好之后,就要开始执行部署。

在项目根目录添加.drone.yml文件,这是drone的执行文件。执行文件通过ssh执行部署。其中script部分为执行命令,切换到环境目录,git拉取最新文件

简单的drone+ssh+git部署

 


已发布

分类

作者:

标签

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

0
希望看到您的想法,请您发表评论x