ReturnTmp's Blog ReturnTmp's Blog
首页
基础课程
编程语言
框架技术
运维笔记
人工智能
随笔摘录
  • 友链
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

ReturnTmp

分享有趣好玩的计算机知识
首页
基础课程
编程语言
框架技术
运维笔记
人工智能
随笔摘录
  • 友链
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Jenkins | VuePress博客自动化部署
  • 三步教你轻松安装配置 Linux Anaconda 环境
  • Windows SSH 远程连接 Linux
  • VuePress 数学公式支持
  • 一文教你如何防御数据库渗透入侵
  • WSL2 Ubuntu20.04 配置 CUDA
  • 前端开发部署运维笔记
  • 运维监控指南
  • 如何使用『Nginx』配置后端『HTTPS』协议访问
  • 华为云云耀云服务器L实例评测|搭建您的私人影院网站
  • 华为云云耀云服务器L实例评测|服务器反挖矿防护指南
  • 华为云云耀云服务器L实例评测|Git 私服搭建指南
  • VSCode『SSH』连接服务器『GUI界面』传输
  • 『硅云』海外云服务器购买指南
  • GitHub Unfork 指南
  • 摆脱推荐算法,实现万物皆可『RSS』
  • Drone 指南
  • 教你如何『SSH』远程连接『内网』服务器
  • 『GitHub Actions』静态博客部署指南
    • 前言
    • 配置密钥
    • 工作流配置
    • 配置 Nginx
    • 工作流推送
    • 参考链接
  • Nginx 配置路径解析
  • 『pnpm』多项目环境迁移指南
  • Nginx 403 forbidden 问题
  • 你知道『SSH』为什么安全吗
  • 手把手教你如何给『Linux』打补丁
  • KVM Anolis OS 环境搭建
  • Docker 快速搭建 MySQL 高可用集群
  • RabbitMQ 入门指南(安装,配置,应用)
  • linux JDK8 环境配置
  • 发布策略
  • Spring Cloud Gateway + Nacos 灰度发布
  • Nginx 负载均衡集群 节点健康检查
  • 前端监控搭建
  • 运维监控系统
  • MySQL 可视化监控
  • MySQL 死锁问题排查与解决
  • Zookeeper Windows 安装配置(单机 - 集群)
  • 阿里云服务器镜像迁移
  • git clone 失败问题
  • Couldn't find ffmpeg or avconv 问题
  • 运维笔记
ReturnTmp
2023-10-13
目录

『GitHub Actions』静态博客部署指南

# 前言

之前博主是使用的 Jenkins 实现 vuepress 博客的自动部署与持续交付,但是因为现在迁移服务器到海外,并且服务器配置降低。现在经常出现服务器的 Jenkins 构建过程中 CPU 占用率过高,导致服务器卡死

然后我想的话既然只是部署静态博客,似乎也没必要使用 Jenkins 这样重量级的 CI/CD 工具,所以本文将会主要讲解如何使用 GitHub Actions 部署我们的 vuepress 静态博客

下面给出博主的博客仓库地址,后面我们的配置过程中需要用到

博客地址:ReturnTmp/blog-vuepress-vdoing (opens new window)

系统配置:CentOS 7.9

# 配置密钥

首先我们需要配置私钥到 GitHub Actions ,以便其可以与我们的云服务器交互

首先我们需要在云服务器生成 SSH 密钥,然后在~/.ssh文件夹下就会生成id_rsa和id_rsa.pub两个文件,分别为私钥和公钥

ssh-keygen -t rsa -C "youmail@gmail.com"
1

或者说我们可以指定私钥和公钥的名称

ssh-keygen -t rsa -f mysite -C "youmail@gmail.com"
1

然后就会在 ~/.ssh下生成两个文件:mysite(私钥)和mysite.pub(公钥)

之后打开上面我们提供的博客仓库地址,找到 Settings 中的 Actinons ,然后点击 New repository secret,然后自定义密钥名称,然后填入上面的 id_rsa,然后即可生成成功

image-20231014151411628

image-20231014152823844

然后需要部署公钥到云服务器中,我们进入云服务器之后,需要编辑文件 ~/.ssh/authorized_keys (没有则创建),然后将 id_rsa.pub 中的公钥内容追加填写其中,可以直接执行如下命令

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
1

# 工作流配置

然后我们按照同样的方法创建 IP 变量,填写自己服务器的域名或是 IP,当然不创建后面直接使用明文也是可以的

我们需要在博客项目的根目录下创建.github/workflows文件夹,创建文件deploy.yml,填写如下内容

name: Deploy My Server

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest # 使用ubuntu系统镜像运行自动化脚本

    steps: # 自动化步骤
      #下载代码仓库
      - uses: actions/checkout@v1

      # 使用action库,安装node
      - name: use Node.js # 使用action库  actions/setup-node安装node
        uses: actions/setup-node@v1
        with:
          node-version: 18.17.0 # 指定node版本
      # 安装依赖
      - name: npm install
        run: npm install

      #打包项目
      - name: Build
        run: npm run build

      #部署到服务器
      - name: Deploy to Staging My server
        uses: easingthemes/ssh-deploy@v2.1.6
        env:
          #私钥
          SSH_PRIVATE_KEY: ${{ secrets.MY_SERVER_PRIVATE_KEY }}
          ARGS: "-rltgoDzvO"
          SOURCE: "docs/.vuepress/dist"
          REMOTE_HOST: ${{ secrets.IP }} #服务器ip
          REMOTE_USER: "root"
          TARGET: "/usr/share/nginx/blog/"
          EXCLUDE: "/node_modules/"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

其中 /usr/share/nginx/blog/ 是我们需要部署博客的目标文件夹,尽量提前创建文件夹,否则可能出现错误

注:其中 action 详细配置可以自行查找对应仓库,例如 actions/checkout action ,仓库位于:https://github.com/actions/checkout

# 配置 Nginx

编辑文件 /etc/nginx/nginx.conf ,编辑如下

server {
    location / {
    root   /usr/share/nginx/blog/dist;
    index  index.html index.htm;
    try_files $uri $uri/ /index.html;
    }
}
1
2
3
4
5
6
7

同时需要更改 Nginx 启动用户,修改 /etc/nginx/nginx.conf

user root;
1

重启 nginx

systemctl restart nginx
1

# 工作流推送

最后推送本地的 deploy.yml 到远程 GitHub 源码库,查看最后 Actions 执行效果即可

image-20231014170229221

然后查看博客部署效果即可

博客访问地址:http://www.returntmp.fun

image-20231014205158399

但是由于服务器在海外,并且文章比较多,导致 app.js 过大,加载时间比较长,实测不使用科学上网的话大概十几秒才加载出来网站

其中排查主要是全文搜索占用 app.js 文件空间过多,后期会进行优化

# 参考链接

  • GitHub Actions 入门教程 - 阮一峰的网络日志 (ruanyifeng.com) (opens new window)
  • 使用GithubActions自动部署(ECS)-腾讯云开发者社区-腾讯云 (tencent.com) (opens new window)
  • 使用Github Action+Vuepress+Nginx自动部署 博客园 (cnblogs.com) (opens new window)
  • 通过 GitHub Actions 自动部署 vuepresss 项目到云服务器-CSDN博客 (opens new window)
编辑 (opens new window)
上次更新: 2023/10/20, 02:29:03
教你如何『SSH』远程连接『内网』服务器
Nginx 配置路径解析

← 教你如何『SSH』远程连接『内网』服务器 Nginx 配置路径解析→

最近更新
01
百度网盘加速
03-24
02
新版 PyCharm 设置 Conda 虚拟环境
03-24
03
腾讯云域名转到阿里云
03-24
更多文章>
Theme by Vdoing | Copyright © 2023-2024 ReturnTmp | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式