CI/CD

持续集成(Continuous Integration,CI)是一种软件开发实践。在持续集成环节中,开发人员每人每天至少集成一次他们的开发成果。每次集成后会经过自动构建(包括静态扫描、安全扫描、自动测试等过程)的检验,以发现开发中的错误。这样做可以加快开发软件的速度和提升开发软件的效率
持续交付(Continuous Delivery)是指持续将开发好的软件新版本交付给质量团队或者用户进行评审,若评审通过了,代码即可进入生产阶段
持续部署(Continuous Deployment)是完成持续交付后的下一步,指的是开发的软件新版本通过评审以后,可以实现自动部署到生产环境中
高并发构建
使用Jenkins+Ansible可以简化配置管理操作,可实现在多台主机上对项目进行自动的部署

前期准备

准备三台Centos7虚拟机,设置IP地址和hostname,关闭防火墙和selinux,同步时间,修改IP地址和hostname的映射关系

hostname ip 部署项目
master 192.168.29.132 jenkins
bak 192.168.29.138 被部署机器
gitlab 192.168.29.140 GitLab

详细Jenkins和GitLab部署方法可参考:https://blog.51cto.com/14832653/2501394
部署ansible
部署方法可参考:https://blog.51cto.com/14832653/2500736
部署tomcat
部署方法可参考:https://blog.51cto.com/14832653/2503233

部署maven

#从官网下载二进制压缩包
#解压
[root@master ~]# tar -zxvf apache-maven-3.6.3-bin.tar.gz
[root@master ~]# mv apache-maven-3.6.3-bin.tar.gz /usr/local/maven

GitLab新建简易项目

Centos7实现基于Jenkins和GitLab的持续集成与部署maven项目_第1张图片Centos7实现基于Jenkins和GitLab的持续集成与部署maven项目_第2张图片
其中index.jsp为tomcat的首页,把其中的nav-home标签改为Home-Jenkins-Test

配置Jenkins

安装maven插件
Centos7实现基于Jenkins和GitLab的持续集成与部署maven项目_第3张图片
配置SSH设置
Centos7实现基于Jenkins和GitLab的持续集成与部署maven项目_第4张图片
配置bak机器的SSH公钥,Test查看是否成功连接,能成功连接就保存SSH设置
新建项目
Centos7实现基于Jenkins和GitLab的持续集成与部署maven项目_第5张图片
Centos7实现基于Jenkins和GitLab的持续集成与部署maven项目_第6张图片
配置项目
Centos7实现基于Jenkins和GitLab的持续集成与部署maven项目_第7张图片Centos7实现基于Jenkins和GitLab的持续集成与部署maven项目_第8张图片
配置项目成功构建后使用ansible把项目部署到bak主机上
Centos7实现基于Jenkins和GitLab的持续集成与部署maven项目_第9张图片
配置pom.xml文件

#不进行配置会报错
#需要按部署项目的要求自行进行配置
[root@master ~] vi /var/lib/jenkins/workspace/project_maven/pom.xml
  
          4.0.0  
          myTest  
          myTest  
          1.0.0  
          war
          
          
          
          org.apache.maven.plugins
          maven-war-plugin
          3.0.0
          
            
                
                    /var/lib/jenkins/workspace/project_maven/web
                
        
        
        
        
    

测试验证

运行项目
在这里插入图片描述
查看运行结果
Centos7实现基于Jenkins和GitLab的持续集成与部署maven项目_第10张图片

#已成功部署到bak主机上
[root@bak ~]# ls /usr/local/tomcat-7-8888/webapps/
docs  examples  host-manager  manager  myTest-1.0.0  myTest-1.0.0.war  ROOT

访问项目
Centos7实现基于Jenkins和GitLab的持续集成与部署maven项目_第11张图片