经过部署自己的静态博客页面,我们已经可以发表文章到博客系统了,但是每次都需要编译、打包文件上传到云服务器,相同的流程能使用工具完成时最好的,接下来就结合git版本管理工具实现自动化部署流程,后续我们的操作就只有上传MD文件博客页面就能自动更新
1、选择版本管理工具
这里我们直接使用码云 ,速度相对较快,大家懂得,直接创建代码仓库将我们的博客代码push到远端,但是需要注意需忽略文件,如果使用idea可以下载.gitignore插件:
.idea
*.iml
node_modules
out
db.json
其中out是打包输出路径,可以从项目根目录_config.yml进行调整,db.json需要忽略,避免部署时产生冲突
2、云服务器安装运行环境
-
git下载 下载安装,或者通过yum进行安装
第一种:yum install git 第二种:将下载后的二进制文件包解压,设置环境变量,可自行百度 下载安装完成后查看版本 git -version
-
node下载 根据需要下载对应版本,本文下载Linux 二进制文件 (x64)
解压压缩包 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
- 拉取代码并手动部署
拉取远程代码 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,最后添加如下内容[credential] helper = store
4、创建自动化脚本
如果以上步骤正常接下来就比较简单了,通过linux的cron定时执行脚本任务触发拉取最新博客内容和编译静态文件
- 创建cron任务
查看当前任务列表 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
#!/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 "完成"
- 测试结果
可能部署过程中会遇到一些坑,解决有困难的同学可以放到评论区,大家一起解决,相互交流学习开始自动编译,当前时间: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、掘金、简书等内容网站