博客自动化部署
经过部署自己的静态博客页面,我们已经可以发表文章到博客系统了,但是每次都需要编译、打包文件上传到云服务器,相同的流程能使用工具完成时最好的,接下来就结合git版本管理工具实现自动化部署流程,后续我们的操作就只有上传MD文件博客页面就能自动更新。
1、选择版本管理工具
这里我们直接使用码云 ,速度相对较快,大家懂得,直接创建代码仓库将我们的博客代码push到远端,但是需要注意需忽略文件,如果使用idea可以下载.gitignore插件:
1 | .idea |
其中out是打包输出路径,可以从项目根目录_config.yml进行调整,db.json需要忽略,避免部署时产生冲突
2、云服务器安装运行环境
git下载 下载安装,或者通过yum进行安装
1
2
3
4
5第一种:yum install git
第二种:将下载后的二进制文件包解压,设置环境变量,可自行百度
下载安装完成后查看版本
git -versionnode下载 根据需要下载对应版本,本文下载Linux 二进制文件 (x64)
1
2
3
4
5
6
7
8
9解压压缩包
tar -xvf node-v14.16.1-linux-x64.tar.xz
重命名文件名
mv node-v14.16.1-linux-x64 node14
创建软连接,设置环境变量
ln -s node14/bin/node /usr/bin/node
查看版本
node -v
npm -v
3、拉取代码并安装Hexo
拉取代码并手动部署
1
2
3
4
5
6
7
8
9
10
11
12拉取远程代码
git clone https://gitee.com/代码仓库地址
初始化node依赖包
npm install
安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
通过cnpm安装hexo
cnpm install -g hexo-cli
创建hexo软链,设置全局环境变量
ln -s /export/app/kayla-blog/node_modules/hexo-cli/bin/hexo /usr/bin/hexo
编译生成静态文件
hexo g设置用户名密码
直接修改项目目录下.git/config,最后添加如下内容1
2[credential]
helper = store
4、创建自动化脚本
如果以上步骤正常接下来就比较简单了,通过linux的cron定时执行脚本任务触发拉取最新博客内容和编译静态文件
创建cron任务
1
2
3
4
5
6查看当前任务列表
crontab -l
编辑创建任务
crontab -e
表达式调用,每三分钟执行一次,执行hexo-g.sh结果写入hexo.out,注意:必须添加 2>&1
*/3 * * * * /export/app/hexo-g.sh >> /export/app/hexo.out 2>&1脚本内容hexo-g.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14#!/bin/bash
source /etc/profile
source ~/.bashrc
echo "开始自动编译,当前时间:$(date "+%Y-%m-%d %H:%M:%S")"
cd /export/app/blog
echo "开始拉取gitee代码"
git pull
echo "代码拉取完成"
echo "开始编译生成静态文件->out"
hexo g
echo "完成"测试结果
可能部署过程中会遇到一些坑,解决有困难的同学可以放到评论区,大家一起解决,相互交流学习1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16开始自动编译,当前时间:2021-05-04 07:51:01
开始拉取gitee代码
From https://gitee.com/xxx/blog
1ecc028..980f12b master -> origin/master
Updating 1ecc028..980f12b
Fast-forward
...215\232\345\256\242\347\275\221\347\253\231.md" | 66 +++++++++++++---------
1 file changed, 38 insertions(+), 28 deletions(-)
代码拉取完成
开始编译生成静态文件->out
INFO Validating config
INFO Start processing
INFO Files loaded in 270 ms
INFO Generated: 2021/05/03/从头搭建我的博客网站/index.html
INFO 1 files generated in 76 ms
完成
5、发布博客到各大内容网站
自己的博客被更多的人看到并应用才能真正体现它的价值,可以将Markdown格式的博客信息放到 博客园、CSDN、掘金、简书等内容网站。