博客搭建 | 四、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

目标部署目录

总结

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

相关推荐
拳打南山敬老院18 分钟前
Context 不是压缩出来的,而是设计出来的
前端·后端·aigc
用户30767528112721 分钟前
💡 从"傻等"到"流淌":我在AI项目中实现流式输出的血泪史(附真实代码+深度解析)
前端
bluceli22 分钟前
前端性能优化实战指南:让你的网页飞起来
前端·性能优化
SuperEugene24 分钟前
Vue状态管理扫盲篇:如何设计一个合理的全局状态树 | 用户、权限、字典、布局配置
前端·vue.js·面试
没想好d25 分钟前
通用管理后台组件库-9-高级表格组件
前端
阿虎儿29 分钟前
React Hook 入门指南
前端·react.js
核以解忧1 小时前
借助VTable Skill实现10W+数据渲染
前端
WangHappy1 小时前
不写 Canvas 也能搞定!小程序图片导出的 WebView 通信方案
前端·微信小程序
李剑一1 小时前
要闹哪样?又出现了一款新的格式化插件,尤雨溪力荐,速度提升了惊人的45倍!
前端·vue.js
闲云一鹤1 小时前
Git LFS 扫盲教程 - 你不会还在用 Git 管理大文件吧?
前端·git·前端工程化