- CICD的概念及jenkins部署
- 1.CICD的过程
- 什么是CICD
- 持续集成
- 持续部署
- CICD的过程
- 2.什么是jenkins
- 3.jenkins部署
CICD 是 持续集成(Continuous Integration)持续交付和持续部署(Continuous Deployment)简称。指在开发过程中自动执行一系列从开发到部署的过程中,尽量减少人工的介入。
持续集成持续集成指在和向远程仓库 push 代码后,在这次提交合并入主分支前进行一系列测试,构建等流程。假设现在有个应用的代码存储在 gitlab 上,每天开发者都 push 很多次提交,针对每次 push,你可以创建一系列脚本进行自动测试,降低往应用里引入错误的概率。这就是持续集成,它可应用在包括开发分支在内的多个分支上。
持续部署持续部署在持续集成的基础上更进一步,指将推送指仓库默认分支的部署至产品环境。如果这部分需要手动触发,这就是一个持续交付(Continuous Delivery)环节。
CICD的过程
CI
1.首先是开发人员写相应的代码(写好之后就把代码提交到gitlub上面去)
2.写完代码之后然后再打包
3.打包完成之后,然后再部署。
4.发布完成之后然后就是测试人员测试
(开发、和测试用的,就算用奔溃了可以重新再部署一个)
(它不适用生产环境,因为有客户在使用)
CD
持续交互
5.测试人员测试没有任何问题之后,然后就把他放到代码仓库里面去(把它放到docker里面去,把它打包成一个docker镜像)
持续部署
从刚刚放到docker里面的一个镜像把它拉到生产环境里面去部署
6.持续部署我们应该人为发布,不能CICD自动化发布,因为我们不知道什么时候要发布,我们必须得到一个精确的发布时间,然后要走流程,流程通过之后我们再手动发布,所有我们的持续部署要用手动发布。
Jenkins 是一个可扩展的持续集成引擎。
主要用于:
- l 持续、自动地构建/测试软件项目。
- l 监控一些定时执行的任务。
Jenkins拥有的特性包括:
- l 易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。
- l 易于配置-所有配置都是通过其提供的web界面实现。
- l 集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
- l 生成JUnit/TestNG测试报告。
- l 分布式构建支持Jenkins能够让多台计算机一起构建/测试。
- l 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
- l 插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。
功能
自动化构建就是Jenkins 的功能,他可以使用多种脚本帮助你完成你的构建需求
Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。
首先我们要部署tomcat,在tomcat部署完成的下面来部署jenkins,因为我已经部署完成,所以直接部署jenkins
下载包
[root@centos8-1 ~]# wget http://mirrors.jenkins.io/war-stable/2.303.2/jenkins.war --2021-10-18 02:38:33-- http://mirrors.jenkins.io/war-stable/2.303.2/jenkins.war 正在解析主机 mirrors.jenkins.io (mirrors.jenkins.io)... 52.202.51.185 正在连接 mirrors.jenkins.io (mirrors.jenkins.io)|52.202.51.185|:80... 已连接。 已发出 HTTP 请求,正在等待回应... 302 Found 位置:http://ftp-chi.osuosl.org/pub/jenkins/war-stable/2.303.2/jenkins.war [跟随至新的 URL] --2021-10-18 02:38:34-- http://ftp-chi.osuosl.org/pub/jenkins/war-stable/2.303.2/jenkins.war 正在解析主机 ftp-chi.osuosl.org (ftp-chi.osuosl.org)... 64.50.236.52, 2600:3402:200:227::2 正在连接 ftp-chi.osuosl.org (ftp-chi.osuosl.org)|64.50.236.52|:80... 已连接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:72334258 (69M) [application/x-java-archive] 正在保存至: “jenkins.war” jenkins.war 100%[======================================>] 68.98M 251KB/s 用时 4m 38s 2021-10-18 02:43:13 (254 KB/s) - 已保存 “jenkins.war” [72334258/72334258]) [root@centos8-1 ~]# ls anaconda-ks.cfg apache-tomcat-9.0.54.tar.gz index.jsp jenkins.war [root@centos8-1 ~]#
[root@centos8-1 ~]# cd /usr/local/tomcat/webapps/ [root@centos8-1 webapps]# mv /root/jenkins.war . [root@centos8-1 webapps]# ls docs examples host-manager jenkins.war manager ROOT test [root@centos8-1 webapps]# [root@centos8-1 webapps]# ../bin/catalina.sh start Using CATALINA_base: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Using CATALINA_OPTS: Tomcat started. [root@centos8-1 webapps]# ls docs examples host-manager jenkins jenkins.war manager ROOT test [root@centos8-1 webapps]# [root@centos8-1 webapps]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:* LISTEN 0 100 *:8080 *:* LISTEN 0 128 [::]:22 [::]:* [root@centos8-1 webapps]#
访问测试并部署
这里的密码我们按照上面的路径直接去查看
[root@centos8-1 webapps]# cat /root/.jenkins/secrets/initialAdminPassword d2860d669db9470e97f9e2269e949047 [root@centos8-1 webapps]#
这里我们点击第二个(选择插件来安装),因为推荐的插件安装比较多
这里我们直接默认安装



