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

目标部署目录

总结

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

相关推荐
铁皮饭盒24 分钟前
Bun执行python代码
前端·javascript·后端
hunterandroid1 小时前
Service 与前台服务:让任务在后台持续运行
前端
米饭同学i1 小时前
深扒 LobsterAI 官网前端动效实现方案:从交互细节到代码实践
前端
霜落长河1 小时前
用Gemini提升React代码调试效率的教程
github
前端啊1 小时前
告别 el-table 打印难题,vue3-print-el-table 来了!
前端·vue.js
JarvanMo1 小时前
AI时代跨平台还有必要吗?
前端
Patrick_Wilson1 小时前
幂等到底是什么?从前端视角讲透 SQL、HTTP 与 POST 接口的幂等设计
前端·后端·架构
凌览1 小时前
一人公司别再上 Jenkins,真不值
前端·后端
oil欧哟1 小时前
Codex 最佳实践(超级长文):先搞懂 AI,再用好 AI
前端·人工智能·后端
小小小小宇1 小时前
前端渲染方式
前端