Jenkins实现博客自动更新部署
前情提要
有一台服务器,本来打算用来做游戏服务器的,但是它带不动【很疑惑,疑惑】,买都买了,不能浪费,那就搞个博客。
博客选了
hexo
框架,篇幅有限,就不介绍hexo安装及主题。然后问题出现了,部署在服务器上,每次写是在本机上写,每次写完,本机push上去,然后又要跑到服务器上去pull一下,然后更新部署,这很麻烦,这不智能,这会让我不愿意写文章的,就像是买东西要多付运费,可能会让我放弃买这个东西。
所以,刚好学过
jenkins
,这不就刚好了吗。
简单介绍
Jenkins
Jenkins是一个CI工具。CI即持续集成,持续集成就是开发的代码立刻进行构建、测试,将新写的代码和原有的代码集成在一起。
看图标,也很显然,就是一个管家,很直观,是用来省事的工具。
Hexo
Hexo是一个快速、简洁高效的博客框架。我选用的这个框架的主要原因有三个:
- 支持Markdown
- 部署方便
- 知识面有限,别的框架我也不知道,如果你有更好的框架推荐,请提醒我。【谢谢你,好心人】
事情进展
安装Jenkins
- 有了想法就动起来,给我的服务器首先安装好
nginx
,npm
,hexo
,绑定域名,然后访问是正常访问的,为了解决自动化部署的问题,就要用到Jenkins,先安装它。 - 参考链接
#安装 CentOs系统
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import http://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum clean all
yum makecache
yum install jenkins
#启动
# 检查Jenkins服务状态
sudo systemctl status jenkins
# 设置为开机自启动
sudo systemctl enable jenkins
# 启动Jenkins服务
sudo systemctl start jenkins
# 查看初始化密码
cat /var/lib/jenkins/secrets/initialAdminPassword
# 这个结果输入到Jenkins的Getting Started页面
- 浏览器访问8080端口,进行初始化,插件安装推荐的那些插件。
- 创建管理员账号,等待安装插件。
Jenkins新建任务
补充插件
- 由于网络的影响,项目部署在
gitee
上,需要增加插件Gitee Plugin
.- 添加方式:插件管理,可选插件,搜索,下载。
- 插件下载好后,Jenkins -> Manage Jenkins -> Configure System -> Gitee Configuration -> Gitee connections添加Gitee链接
任务配置
-
描述:【巴拉巴拉】你随意
-
勾选GitHub项目,填入你的项目URL,配置你的Gitee链接
-
源码管理:输入项目地址,Credentials添加你的登录凭证,账户密码或其他
-
build 分支选择指定分支
-
构建
-
执行shell
-
source /root/my-blog/do.sh
-
cd /root/my-blog/Blog git pull hexo clean hexo g
-
此处注意,服务器要配置ssh,git操作就不用输入账号密码了。
-
-
构建触发器部分
- 选择
Gitee webhook
触发构建 - 登录
gitee
,在你的项目下选择管理,选择webhooks
配置,添加。参考Gitee的WebHooks文档