0%

Jenkin实战三

Jenkin+Nginx+Hexo+GitHub+Centos 实现自动部署博客

此篇博客不讲环境搭建,主要记录我自己在搭建Jenkins自动部署我的博客的过程中,遇到的一些难点问题和一些解决办法,以此来避免下一次遇到相同的问题,提高自己的做事效率。

前言

首先,应该在Centos系统上搭建好我们的 Jenkins,Nginx,JDK,Git,Tomcat 的环境

原理

我们将windows本地的博客,通过 hexo d 命令部署到GitHub上,然后通过配置 Jenkins,GitHub收到有更新的代码,会通知Jenkins 来重新构建我们的博客,构建的方式需要我们根据自己的情况,自行配置。

配置过程记录

1)在Jenkins 全局工具配置中 (Global Tool Configuration) 配置我们Centos中JDK和Git的路径

2)在Jenkins中新建一个 Freestyle Project 的项目,然后进行项目配置

源码管理 配置如下:

构建出发器配置 如下:

我们只需要将 GitHub hook trigger for GITScm polling 这一选项勾上就行了,代表Github收到代码更新之后,会自动的触发Jenkins 构建项目

构建环境 配置,我们只需要配置 Execute shell 选项,在里面添加我们的构建过程,我的配置如下:

然后,点击应用保存即可。总之就是配置两个地方,全局工具配置Git,然后新建项目,再项目中配置github地址,添加私钥,和构建过程。

遇到的坑

(1)构建项目报错,显示权限不够:

报这个错误的原因是登录Jenkins的用户是一个普通用户,我们需要给这个用户添加权限,添加权限的方式就是找到Manage Jenkins >Configure Global Security>Strategy (全局安全配置中的授权策略)给用户添加权限。如下所示:

(2)Nginx报403 Forbidden 禁止访问

原因:这是由于我们启动Nginx服务的是root用户,但是对Nginx 中的目录进行写入的是Jenkins中的用户,导致没权限访问。

解决办法: 进入Nginx目录中,修改Nginx中 html目录的权限

1
$ chomd -R 777 ./html

总结

至此,整个博客自动部署流程就配置好了,省时省力。以前的做法是先在windows本地编辑好了博客,然后需要去覆盖centos系统中,Nginx目录中HTML目录下的public目录,两个系统来回切换十分麻烦。现在只需要上传到github上就可以实现自动构建项目。

-------- 本文结束 感谢阅读 --------