自建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拉取最新文件
发表回复