栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

jenkins和CI/CD

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jenkins和CI/CD

jenkins和CI/CD
    • 1.CI/CD是什么
    • 2.jenkins
      • 2.1 jenkins是什么
      • 2.2 jenkins功能及特性
      • 2.3 jenkins部署

1.CI/CD是什么

持续集成
持续集成(Continuous integration,简称CI),简单来说持续集成就是频繁地(一天多次)将代码集成到主干。
每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,从而尽快地发现集成错误。

持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,可以确定新代码和原有代码能否正确地集成在一起。

持续集成的好处:

  • 快速发现错误,每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易;
  • 防止分支大幅偏离主干,如果不经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。

持续集成的目的:  
  让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
持续集成并不能消除 Bug,而是让它们非常容易的发现和改正。

持续交付
持续交付(Continuous delivery)指的是:频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。

持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。
持续交付优先于整个产品生命周期的软件部署,建立在高水平自动化持续集成之上。

持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。

持续部署
持续部署(Continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。

持续部署的前提是能自动化完成测试、构建、部署等步骤。

持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。

2.jenkins 2.1 jenkins是什么

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。
Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

2.2 jenkins功能及特性

功能作用:

  • 持续、自动地构建/测试软件项目。
  • 监控一些定时执行的任务。

特性:

  • 易于安装:只要把jenkins.war部署到servlet容器,不需要数据库支持。
  • 易于配置:所有配置都是通过其提供的web界面实现。
  • 消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。生成JUnit/TestNG测试报告。
  • 分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
  • 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
  • 插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。

打包工具:

  • gradler
  • ant
  • maven
    打包工具版本必须一致
2.3 jenkins部署

jenkins是基于tomcat,首先部署tomcat

//关闭防火墙和selinux
[root@localhost ~]# systemctl disable --now firewalld.service 
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 
[root@localhost ~]# setenforce 0

//安装JAVA环境
[root@localhost ~]# yum -y install java-11-openjdk*

//下载tomcat
[root@localhost ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz

//解压
[root@localhost ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.54.tar.gz
[root@localhost ~]# tar xf apache-tomcat-9.0.54.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ls
apache-tomcat-9.0.54  bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@localhost local]# mv apache-tomcat-9.0.54/ jenkins	//将部署jenkins当作一个项目,把解压后的目录改为项目名
[root@localhost local]# ls
bin  etc  games  include  jenkins  lib  lib64  libexec  sbin  share  src

//启动
[root@localhost local]# jenkins/bin/catalina.sh start
Using CATALINA_base:   /usr/local/jenkins
Using CATALINA_HOME:   /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@localhost local]# ss -anltu
Netid     State      Recv-Q     Send-Q               Local Address:Port           Peer Address:Port     
tcp       LISTEN     0          128                        0.0.0.0:22                  0.0.0.0:*        
tcp       LISTEN     0          100                              *:8080                      *:*        
tcp       LISTEN     0          128                           [::]:22                     [::]:*        
tcp       LISTEN     0          1               [::ffff:127.0.0.1]:8005                      *:*        

#tomcat部署成功
//下载jenkins的war包
[root@localhost ~]# wget https://get.jenkins.io/war-stable/2.303.2/jenkins.war

//复制war包到webapps目录下,tomcat自动解压
[root@localhost ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.54.tar.gz  jenkins.war
[root@localhost ~]# cd /usr/local/jenkins/webapps/
[root@localhost webapps]# ls
docs  examples  host-manager  manager  ROOT
[root@localhost webapps]# cp /root/jenkins.war .
[root@localhost webapps]# ls
docs  examples  host-manager  jenkins.war  manager  ROOT
[root@localhost webapps]# ls
docs  examples  host-manager  jenkins  jenkins.war  manager  ROOT

web页面访问webapps/jenkins目录

安装插件


创建管理员用户

配置实例网站链接

部署完成

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/333560.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号