来源:公众号 安全随笔 原文链接:https://mp.weixin.qq.com/s/KVc4IFky1z7kZn-7bz79DQ 一、CI/CD环境介绍 本次要实现如下效果,开发人员完成功能开发并提交代码到gitlab仓库,jenkins自动完成拉取代码、编译构建、代码扫描(sonarqube)、打包,再自动化完成部署到Tomcat服务器提供访问。 环境准备三台Centos7.6机器:
部署过程中踩过不少坑,这套Jenkins因为需要安装较多插件,而Jenkins上的插件版本要求比较严格,所以最好实验情况下直接安装最新的Jenkins版本,这样上面的插件基本都能安装,包括Pipeline、gitlab、SSH Server等。不然遇到Jenkins插件安装不顺畅对新人挺麻烦的。 Jenkins安装最新版,那JDK也必须11以上,那也就要求sonarqube也得7.8以上,三者之间都是有依赖关系的。 看下效果: 自动git拉取代码: maven自动构建: sonarqube自动扫描: 自动部署: sonarqube扫描结果: 二、CI/CD平台搭建 1)安装gitlab 1. 安装相关依赖 添加组、创建用户、创建项目 这样用户zhangsan就拥有了itheima_group组的权限。接下来使用zhangsan用户进入组创建一个新的项目,项目名称:hello_demo 该项目仓库地址是: http://192.168.220.170:82/itheima_group/hello-demo.git git@192.168.220.170:itheima_group/hello-demo.git 接下来将本地的maven工程代码上传到gitlab仓库,上传成功后如下: 到这gitlab就准备好了! 2)安装jenkins
Jenkins安装完成后,需要替换插件更新源:需要执行以下步骤: sed -i 's/https:\/\/updates.\/download/https:\/\/mirrors.tuna.\/jenkins/g' default.json && sed -i 's/https:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json 在Manage Jenkins -- Plungin Manager -- Update Site:将url替换为清华大学的url:https://mirrors.tuna./jenkins/updates/update-center.json 提交后,在浏览器输入:http://192.168.220.172.:8080/restart重启jenkins生效。 Jenkins准备好后,就是与gitlab集成,完成代码自动拉取的动作了。但是需要先准备如下: 安装Credentials Binding插件 要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件,拉取gitlab代码需要使用凭证的方式拉取: 再去添加gitlab认证的凭证: 还要再jenkins服务器上安装git工具和git插件: 在jenkins上准备一个项目: 到这里,jenkins拉取gitlab代码的准备条件都ok了。开始与gitlab集成吧。 保存,然后回到项目点“Build Now”: 如上图,jenkins自动去gitlab拉取代码,并且将代码工程放在如上路径下: 好了,到这里说明jenkins已经安装成功了,也安装了相关的插件和配置了jenkins的基本配置,并且完成了与gitlab的集成,完成构建自动触发代码拉取到本地。 3)部署Tomcat服务器
注意:服务器已经关闭了防火墙,所以可以直接访问Tomcat啦,地址为:http://192.168.66.102/8080 tomcat已经部署成功! 4)配置jenkins与tomcat集成,完成CD持续部署功能 同样的,也是需要在jenkins上做大量的配置: Maven安装和配置 tar -xzf apache-maven-3.6.2-bin.tar.gz #解压 配置环境变量
Jenkins全局工具配置,关联JDK和Maven 添加Jenkins全局变量 准备好后,来测试Maven构建是否生效,还是用刚刚的项目:hello_web 可以看到,项目构建成功。可以去服务器上看到war包已经生成。 war可以自动编译,还差自动部署了,有需要配置一些步骤: 安装 Deploy to container插件 添加Tomcat凭证 jenkins项目配置构建后操作 保存配置,点“Build Now”: 可以看到项目成功部署,可以正常访问。 |
|