一、CI/CD环境介绍本次要实现如下效果开发人员完成功能开发并提交代码到gitlab仓库jenkins自动完成拉取代码、编译构建、代码扫描sonarqube 、打包再自动化完成部署到Tomcat服务器提供访问。环境准备三台Centos7.6机器服务器IP地址配置包含功能及版本Gitlab192.168.220.1702核2GGitlab12.4.2 (393a5bdafa2)Jenkins192.168.220.1722核2GJenkins2.364Maven3.8.6Sonarqube7.9.6 (build 41879JDK11.0.16Git1.8.3.1Tomcat192.168.220.1732核2GTomcat8.5.82JDK1.8.0_342部署过程中踩过不少坑这套Jenkins因为需要安装较多插件而Jenkins上的插件版本要求比较严格所以最好实验情况下直接安装最新的Jenkins版本这样上面的插件基本都能安装包括Pipeline、gitlab、SSH Server等。不然遇到Jenkins插件安装不顺畅对新人挺麻烦的。Jenkins安装最新版那JDK也必须11以上那也就要求sonarqube也得7.8以上三者之间都是有依赖关系的。看下效果自动git拉取代码maven自动构建sonarqube自动扫描自动部署sonarqube扫描结果二、CI/CD平台搭建1安装gitlab1. 安装相关依赖 yum -y install policycoreutils openssh-server openssh-clients postfix 2. 启动ssh服务设置为开机启动 systemctl enable sshd sudo systemctl start sshd 3. 设置postfix开机自启并启动postfix支持gitlab发信功能 systemctl enable postfix systemctl start postfix 4. 开放ssh以及http服务然后重新加载防火墙列表 firewall-cmd --add-servicessh --permanent firewall-cmd --add-servicehttp --permanent firewall-cmd --reload 如果关闭防火墙就不需要做以上配置 5. 下载gitlab包并且安装 在线下载安装包 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-12.4.2-ce.0.el6.x 86_64.rpm 安装 rpm -i gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm 6. 修改gitlab配置 vi /etc/gitlab/gitlab.rb 修改gitlab访问地址和端口默认为80我们改为82 external_url http://192.168.220.170:82 nginx[listen_port] 82 7. 重载配置及启动gitlab gitlab-ctl reconfigure gitlab-ctl restart 8. 把端口添加到防火墙 firewall-cmd --zonepublic --add-port82/tcp --permanent firewall-cmd --reload 启动成功后看到以下修改管理员root密码的页面修改密码后然后登录即可添加组、创建用户、创建项目这样用户zhangsan就拥有了itheima_group组的权限。接下来使用zhangsan用户进入组创建一个新的项目项目名称hello_demo该项目仓库地址是http://192.168.220.170:82/itheima_group/hello-demo.gitgit192.168.220.170:itheima_group/hello-demo.git接下来将本地的maven 工程代码上传到gitlab仓库上传成功后如下到这gitlab就准备好了2安装jenkins1安装JDK Jenkins需要依赖JDK所以先安装JDK11 yum install -y java-11-openjdk* 安装目录为/usr/lib/jvm 2获取jenkins安装包 wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo --no-check-certificate rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key yum install jenkins 3启动Jenkinssystemctl start jenkins 4打开浏览器访问 http://192.168.220.172:8080 注意本服务器把防火墙关闭了如果开启防火墙需要在防火墙添加端口 5获取并输入admin账户密码 cat /var/lib/jenkins/secrets/initialAdminPassword 6跳过插件安装 因为Jenkins插件需要连接默认官网下载速度非常慢而且经过会失败所以我们暂时先跳过插件安装Jenkins安装完成后需要替换插件更新源需要执行以下步骤sed -i s/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/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替换为清华大学的urlhttps://mirrors.tuna.tsinghua.edu.cn/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压缩包上传到192.168.66.102服务器 yum install java-1.8.0-openjdk* -y #安装JDK已完成 tar -xzf apache-tomcat-8.5.47.tar.gz #解压 mkdir -p /opt/tomcat #创建目录 mv /root/apache-tomcat-8.5.47/* /opt/tomcat #移动文件 /opt/tomcat/bin/startup.sh #启动tomcat注意服务器已经关闭了防火墙所以可以直接访问Tomcat啦地址为http://192.168.66.102/8080tomcat已经部署成功4配置jenkins与tomcat集成完成CD持续部署功能同样的也是需要在jenkins上做大量的配置Maven安装和配置tar -xzf apache-maven-3.6.2-bin.tar.gz #解压 mkdir -p /opt/maven #创建目录 mv apache-maven-3.6.2/* /opt/maven #移动文件配置环境变量export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk export MAVEN_HOME/opt/maven export PATH$PATH:$JAVA_HOME/bin:$MAVEN_HOME/binJenkins全局工具配置关联JDK和Maven添加Jenkins全局变量准备好后来测试Maven构建是否生效还是用刚刚的项目hello_web可以看到项目构建成功。可以去服务器上看到war包已经生成。war可以自动编译还差自动部署了有需要配置一些步骤安装 Deploy to container插件添加Tomcat凭证jenkins项目配置构建后操作保存配置点“Build Now”可以看到项目成功部署可以正常访问。最后下方这份完整的软件测试 视频教程已经整理上传完成需要的朋友们可以自行领取【保证100%免费】​​​软件测试面试文档我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。