type
status
date
slug
summary
category
tags
create_time
Jul 18, 2025 05:54 PM
icon
password
my_create_time
📝 前言
这是 DevOps 专题的第六篇,回顾一下前几篇的内容:
- 基本概念介绍:《从阿里云效到自建DevOps平台:Gitea入门介绍》
- 快速部署 Gitea 实例:《使用 Docker 快速部署 Gitea 指南(实战一)》
- 部署 CI/CD 工具:《使用二进制部署 Gitea Runner 指南(实战二)》
- 部署镜像仓库:《离线部署 Harbor 企业级镜像仓库指南》
- Gitea Action 入门:《Gitea Actions 工作流入门指南(实战三)》
这一篇我们开始介绍如何使用 Gitea Actions(ssh-action)来完成远程部署,这是一种更为常见的部署方式。
🧭 背景介绍
Gitea Action 可用于自动化测试、打包构建,甚至是部署任务。
当代码合并到主分支时,可通过 Action 自动将代码部署到远程服务器,如生产环境、测试环境或内网机器,极大提升效率并降低人为失误。
📋 前提条件
在开始之前,请确保你已满足以下条件:
- 已部署并启用 Gitea 1.21+,并开启 Actions 功能(默认开启,部署文章参看:《使用 Docker 快速部署 Gitea 指南(实战一)》)
- 拥有可 SSH 登录的远程服务器
- Gitea Runner 已正确注册并运行(可参看文章:《使用二进制部署 Gitea Runner 指南(实战二)》)
- Linux shell、SSH、Gitea 基本操作有一定了解
🚀 详细步骤
1️⃣ 下载离线 actions 和依赖
由于受到众所周知的网络环境影响,我们构建时使用的 action 并不能稳定下载,因此建议都手动下载,并上传到自己私有仓库中,这里在上一篇中也已经介绍过了。
另外
ssh-action
还依赖drone-ssh
工具,也是需要我们下载并上传到私有的文件服务器上。还有需要注意的是在推送官方
action
到自己的git仓库时,要把tag也一起推送,完整推送命令示例如下:2️⃣ 文件服务器配置
这里就简单的使用 nginx 快速搭建一个文件服务器即可,参考配置如下:
PS:这里我一般都是会在
/etc/nginx/sites-available/
创建.conf
文件,然后通过软链接的方式进行启用:ln -s /etc/nginx/sites-available/xxx.conf /etc/nginx/sites-enabled/
创建文件服务目录并设置权限:
下载
drone-ssh
工具,并设置执行权限:3️⃣ 配置工作流
继续还是用上一篇文章的示例项目,修改
.gitea/workflows/build.yaml
文件:配置变更说明:
- 环境变量: 这次我们新加了3个全局变量,分别为
REMOTE_HOST
、DRONE_SSH_RELEASE_URL
、DRONE_SSH_VERSION
,第1个就不用说是需要部署到远程的服务器地址,第2、3个是离线下载drone-ssh
的环境变量,这个变量名称是不能改的,ssh-action 代码里面已写死。
- deploy job: 这次我们在
deploy job
中新加了ssh-action
的引用,方便我们更好的执行远程命令,当然你也可以直接使用 ssh 命令,只是没那么方便和优雅而已。
- secrets: 我们在
docker-login-action
和ssh-action
中都引用到了secrets
,这是为了安全起见,下面会介绍到如何创建secrets
。
- script: 需要在远程执行的脚本命令,支持多行命令。
4️⃣ 创建 secrets
一般较为敏感的信息,如:密码、密钥、APIKEY等建议都使用
secrets
进行引用,避免信息泄露。我们进入 Gitea 项目,点击设置 → Actions → 密钥 → Add secret 即可创建 secret,如下图所示:


值填写我们的SSH私钥,通常是在
~/.ssh/id_xxx
,注意是不带.pub
后缀名的。PS:这里需要提前将公钥添加到目标主机的
~/.ssh/authorized_keys
文件内。镜像仓库密码也按同理进行创建即可,名称为:
REGISTRY_PASSWD
✅ 总结
通过 Gitea Action 结合 SSH 和 Secrets,我们实现了一个小而美的自动化部署方案,完全自托管、无需依赖 GitHub/GitLab 等第三方平台。
另外 ssh-action 不只是支持密钥认证,同时也支持密码认证、多主机部署、代理连接等功能,详细可参看项目文档。
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若文章对您有帮助,欢迎 请我喝杯咖啡~
- 作者:青萍叙事
- 链接:https://blog.lusyoe.com/article/gitea-action-remote-deploy
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。