博客搭建 | 四、GitHub Actions ssh-deploy部署至阿里云

简述

在很久之前写了一篇如何使用github actions将博客部署到gitee上,现在,时隔两年,gitee不再提供page服务,于是打算将博客部署到自己的服务器上,以保证国内的访问速度。 如果你没有看过上一篇内容,请点击这里

ssh-deploy

之前的文章已经讲过关于github actions以及前几部的操作,本篇主要说明部署阿里云的操作

这个库主要用于部署至私有服务器上,通过秘钥的方式登录并操作服务器,而在使用中最大的麻烦就在于各个参数的配置上。

配置Actions

yml 复制代码
  - name: deploy aliyun
    uses: easingthemes/ssh-deploy@v5.0.3      #action
    env:
      SSH_PRIVATE_KEY: ${{ secrets.TREE_HOLE }}  #秘钥
      SOURCE: "./dist/"
      ARGS: "-avzr --delete --exclude '.user.ini'"
      REMOTE_HOST: ${{ secrets.HOST }}    # ip
      REMOTE_USER: ${{ secrets.USER }}    # 账号
      REMOTE_PORT : "22" # 端口
      TARGET: ${{ secrets.TARGET }}       # 部署路径

SSH_PRIVATE_KEY

我这里使用的ECS服务器,生成它比较简单,登录阿里云控制台,选择ECS服务器,找到 网络与安全》密钥对,点击创建密钥对,创建时会下载一个pem文件,创建后需要重启服务器,将pem文件内容复制到github secrets中,创建TREE_HOLE(叫啥都行),注意不要多复制一行空格。

SOURCE

需要注意的是,我的博客打包后位置是常见的 dist ,但这里仍需这样写 ./dist/,如果少写,运行可能会报错。

ARGS

这个参数是可填可不填的,由于我并不熟悉服务器命令相关内容,这个参数在我这里的作用是:部署前执行一些操作。后面的命令 -avzr --delete, 会在部署前删除目标目录下的内容;后面的参数 --exclude '.user.ini' ,是排除目标目录下的 .user.ini 文件,使它不被删除。在博客部署中,我们需要清空上一次部署中生成的静态文件,而因为我使用的宝塔创建的站点,会在对应目录中生成配置文件,所以要排除它,否则会在执行actions时报错(虽然报错,但仍会部署成功,并不影响)

REMOTE_HOST

服务器ip

REMOTE_USER

服务器账号,一般是root

REMOTE_PORT

服务器ssh端口 一般是22

TARGET

目标部署目录

总结

该方法不仅适用于博客,同样的平日的项目也可以通过该方法进行多服务器部署,减少人工频繁操作。

相关推荐
IccBoY16 分钟前
NVM超详细全解教程:解决Node版本冲突(Win/Mac/Linux安装+使用+踩坑合集)
前端·node.js
wuhen_n19 分钟前
前端工程师进阶提示词工程实战
前端·langchain·ai编程
GISer_Jing31 分钟前
Claude Code MCP Server 集成全解析
前端·人工智能·ai·架构
蚰蜒螟31 分钟前
走进 Linux 内核:从 touch 命令到磁盘 inode 的完整旅程
java·linux·前端
因_崔斯汀35 分钟前
用 AI 编程助手从零生成 3D 智慧校园数据大屏 —— Claude Code 实战全记录
前端
前端Hardy35 分钟前
CSS 动画真的比 JS 快?Josh Comeau 做了组实验,结果跟直觉不一样
前端·javascript·后端
自进化Agent智能体41 分钟前
MCP与Hooks:让AI Agent安全连接一切的治理框架
前端
明天一点43 分钟前
Cloudflare 通知转发钉钉机器人
前端·后端
前端Hardy43 分钟前
前端日历组件,要变天了?Schedule-X v4.6 彻底杀疯了
前端·javascript·后端
微扬嘴角1 小时前
React快速入门
前端·react.js·前端框架