使用jenkins来部署hexo简直就是小题大做,但是偶尔这样小题大做还真有折腾的乐趣
背景
jianyujianyu.com之前是使用typecho做博客的。
原因很简单,wordpress太重,hexo很轻没错,可是这个没有后台管理(听说可以折腾成有后台管理的),每次写完博客都要deploy一下的hexo,我真心要不起。
而现在jianyujianyu.com是hexo了,经过也很简单,就是因为CA证书过期了,换证书的时候弄砸了,本着顺便过滤一波辣鸡博客的心思,重新弄,这次选择了hexo,不为什么,人生的选择就是这么奇妙。
那怎么不自己手写一个?说得好!不过我才不要。
用hexo不是不行,是要考虑deploy的事,或者,我换台电脑写博客,我没有这个hexo的node环境,我也不想登录服务器用着vim来写,比如我现在就安静在公司电脑上写博客。在这样的情况下,怎么deploy呢?在从前,wordpress和typecho有着后台管理,这个问题根本是不存在的。
想着想着,一拍脑袋,就直接用jenkins了,然后把代码放在github,包括hexo的整个文件夹。至于为啥用github而不用coding甚至是github pages,never mind。
设计的deploy过程很简单:
- 我先clone了github上的hexo文件夹,添加了md文章,然后push
- github整理好代码就通知jenkins:我这里资源更新了,大爷快来玩啊
- jenkins收到消息,兽性大发地下了github上的代码
- 拥有hexo环境的jenkins直接执行hexo g,产生了分泌物,也就是静态文件,在这里就是jianyujianyu.com的html网页内容(hexo/public)
- 待定的nginx直接将用户请求拉向jianyujianyu.com的hexo/public文件夹即可
简单地设计完,便是动手开始。
环境准备
所有操作都是在Ubuntu的root用户下进行的,其他环境自行处理或转换
Java、Tomcat和Jenkins
jenkins是java的美好产物,为了后面调试起来简单,使用tomcat容器来装着这产物,而不是直接用apt下载。
(如果为了快捷,也可以只下载java和jenkins,然后通过java -jar jenkins.war
来运行。不推荐。)
因此我们首先安装J8。
add-apt-repository ppa:webupd8team/java
apt update
apt install oracle-java8-installer
之后是安装tomcat。对应着J8,选tomcat8。先去tomcat官网下载包,然后解压。
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-