本文模拟PHP项目的代码发布配置,比较简单(因为中间不需要编译打包,直接上传到服务器目录重启应用即可),安装好最新的gitlab+jenkins+nginx ,分别在不同的3台服务器上。
总体思路
- gitlab建用户,用新用户登录,建新的项目。
- 给jenkins授权可访问gitlab。
- nginx配置静态页面目录,及文件。
- 在jenkins中加入nginx服务器。
- 在jenkins中配置git项目,设置远程目录,新建流水项目。
- 在gitlab对应的项目中,新建webhook。
1.gitlab设置
1)用admin进gitlab,新建一个用户跟项目。
2)用新用户登录gitlab,进入用户设置页面,选定具体的用户,并切到“SSH keys”界面,给用户添加公钥。
3)关于公钥私钥的生成,最简单的办法,在linux系统下(可以在jenkins的服务器里执行,因为是jenkins服务器要去链接gitlab),用root执行ssh-keygen命令,会在/root/.ssh/下面,生产两个文件,其中id_rsa.pub是公钥,id_rsa是私钥。将共要文件的内容,粘贴到如上的ssh key里,作为jenkins连接的认证,私钥在后面要用到。
2.jenkins添加nginx服务器
1) 切到jenkins的系统配置页面
2)增加新的ssh server,就是我们刚才新建的nginx 服务器。
3.在jenkins中新建流水项目
1)新建项目
2)源码管理
仓库地址选gitlab的项目链接地址.
要新建一个用户,此处验证方式选ssh username with private key,就是上面linux服务器生成的私钥,粘贴进去。
指定分支,根据自己的情况,如果是main,*/main
3)触发器构建
4)构建环境
服务器就选我们刚才新建的nginx服务器。
源文件,固定格式**/**
远程目录,就是nginx服务器上的代码目录,根据实际情况填写。
执行脚本,就是代码传完后,需要执行的服务器脚本,正常都是重启nginx应用之类的。
4.gitlab中新建webhook
进入gitlab,在对应的项目中,选择设置webhooks
其中URL就是上一步源码管理中生成的URL.
Secret token就是上面生成的安全令牌。
5. 在jenkins中执行任务,会看到nginx上的文件被更新,nginx被重启。
整个过程中会遇到几次报错,大家直接百度即可,都有详细的解决方案。