博客自动化部署

经过部署自己的静态博客页面,我们已经可以发表文章到博客系统了,但是每次都需要编译、打包文件上传到云服务器,相同的流程能使用工具完成时最好的,接下来就结合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、掘金、简书等内容网站

上一篇:Hexo搭建个人静态博客网站


下一篇:hexo d 报错 hexo 安装搜索功能 hexo 报错没有git