【注意:】新版本Jenkins不能关闭跨站请求伪造保护(CSRF) ,本方法可解决
实现目的:在gitlab提交PHP代码后自动部署到web服务器
1 Jenkins安装
所有版本下载地址
https://www.jenkins.io/zh/download/
由于是centos,下载稳定版的rpm文件安装
https://pkg.jenkins.io/redhat-stable/
推荐清华源下载:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/
里面的插件也可以直接下载后上传到jenkins安装。
注意jenkins是依赖java环境运行的。也可以下载war包部署(推荐)。rpm安装方式会存在各种权限问题。
1.1 Tomcat安装方式
宝塔面板安装【Java项目管理器】会自动安装Java环境
和Tomcat(v9)
,建立Java项目,将jenkins.war
文件上传到该项目根目录并解压即可。
1.2 rpm安装方式
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.222.3-1.1.noarch.rpm
rpm -ivh jenkins-2.222.3-1.1.noarch.rpm
安装好后可以修改配置文件,如端口号(默认8080)之类的
vim /etc/sysconfig/jenkins
启动
service jenkins start
1.3 配置
http://ip:端口号
访问网页,按提示获取并输入密码。不要安装插件,不然很慢
。进入管理界面后进入【插件管理】直接上传插件安装,也可以把下载源更换为国内的。为了加快插件安装速度,插件管理->高级->升级站点更换下载源:
http://mirror.xmission.com/jenkins/updates/update-center.json
上述源有时也会失败,不推荐。
推荐:
参考《Jenkins安装插件提速》
设置为清华下载源:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
找到default.json文件替换其中链接:
cd /home/www/.jenkins/updates
sed -i 's#http://updates.jenkins-ci.org/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g' default.json && sed -i 's#http://www.google.com#https://www.baidu.com#g' default.json
2 安装Localization: Chinese (Simplified)插件
汉化不完整的问题请参考《安装最新版本的jenkins 如何改成中文》
安装插件 Locale
->系统设置->Locale设置为zh_CN
,重启。无效则先设置为en_US
再设置为zh_CN
3 Gitee插件使用
Jenkins可直接安装Gitee插件。使用方法跟Gitlab类似。
需要注意的是,由于我们使用dev分支开发,然后合并到master分支部署,在此处设置过滤分支,不然任何分支提交都会触发代码拉取。
4 Gitlab插件使用
在Jenkins中安装Gitlab Plugin插件后,添加任务(构建一个自由风格的软件项目),任务的【源码管理】配置中选择git,可以直接输入用户名密码作为git凭证。
【Build when a change is pushed to GitLab…】会显示GitLab的webhook URL,点击【高级】按钮,里面可以产生一个token。
在gitlab项目的webhook填入URL,以及token。
3 测试与部署
gitlab中创建好webhook后可以点击按钮测试一下。
这时jenkins会拉取最新代码。
上图有个git保存路径【Building in workspace /var/lib/jenkins/workspace/xxx】,将web服务器目录设置为该路径即可,注意文件权限问题。