jenkins

CI/CD

在这里插入图片描述

CI:持续集成(CONTINUOUS INTEGRATION)
它属于开发人员的自动化流程。成功的 CI 意味着应用代码的新更改会定期构建、测试并合并到共享存储库中。该解决方案可以解决在一次开发中有太多应用分支,从而导致相互冲突的问题。

CD:持续交付(CONTINUOUS DELIVERY)
通常是指开发人员对应用的更改会自动进行错误测试并上传到存储库(如 GitHub 或容器注册表),然后由运维团队将其部署到实时生产环境中。这旨在解决开发和运维团队之间可见性及沟通较差的问题。因此,持续交付的目的就是确保尽可能减少部署新代码时所需的工作量。

CD:持续部署(CONTINUOUS DEPLOYMENT)
指的是自动将开发人员的更改从存储库发布到生产环境,以供客户使用。它主要为了解决因手动流程降低应用交付速度,从而使运维团队超负荷的问题。持续部署以持续交付的优势为根基,实现了管道后续阶段的自动化。
在这里插入图片描述
总结:CI/CD 其实就是一个流程(通常形象地表述为管道),用于实现应用开发中的高度持续自动化和持续监控。该术语的具体含义取决于 CI/CD 管道的自动化程度。

发布流程

手动发布

接收开发的代码包
放在服务器的指定目录下
修改配置文件
启动服务(Tomcat、Java)

半自动发布

配置Jenkins任务
Jenkins编译打包
手动拉取Jenkins上的包、部署到服务器指定目录上
修改配置文件
启动服务(Tomcat、Java)

自动发布

配置Jenkins任务
Jenkins编译打包
编写自动发布脚本
修改配置文件
发布测试

总结

在这里插入图片描述

Jenkins介绍

  • Jenkins是一个独立的开源自动化服务器,可用于自动化各种任务,如构建,测试和部署软件。Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机器独立运行。
  • Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
  • 简单点说:Jenkins其实就是大的框架集,可以整个任何你想整合的内容,实现公司的整个持续集成体系!如:自动化,性能,打包,部署,发布&发布结果自动化验证,接口测试,单元测试

Jenkins可自由部署在各平台:Windows, Linux, Mac

传统网站部署流程:
在运维过程中,网站部署是运维的工作之一。传统的网站部署的流程大致分为:需求分析->原型设计->开发代码->提交代码->内网部署->内网测试->确认上线->备份数据->外网更新->外网测试->发布完成。如果在内网测试时发现代码有异常,返回代码开发人员名字,调整代码;如果在外网测试时发现外网部署的代码有异常,可以及时进行网站回滚。
在这里插入图片描述
手动上线步骤:
开发人员发起代码上线的需求(邮件中包含开发做好的WAR包)-)运维人员连接线上负载调度器(Nginx)–>隔离一组服务器(Tomcat)–>连接服务器(Tomcat)–>备份旧代码(tar打包)–>删除旧代码目录–>上传新的WAR包–>外网测试–>测试不通过则通过备份回滚代码–>测试通过则利用rsync的脚本推送代码到其他服务器–>统一外网测试->连接调度器恢复隔离机制–>隔离另一组服务器实施上线步骤–>上线完成。

目前主流网站部署流程
通过Hudson/Jenkins工具平台实现全自动部署+测试,是一个可扩展的持续集成引擎,属于开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins非常易于安装和配置,简单易用。
开发人员:写好代码,不需要自己进行源码编译、打包等工作,直接将代码分支存放在SVI、Git仓库即可。
运维人员:减轻人工干预的错误率,同时解放运维人员繁杂的上传代码、手动备份、更新等操作。
测试人员:可以通过Jenkins进行简单的代码及网站测试
在这里插入图片描述

jenkins的部署

部署tomcat

[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 -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config 
[root@localhost ~]# setenforce 0

// jenkins基于网页服务,所以先部署tomcat
[root@localhost ~]# yum -y install java-11-openjdk*	vim wget	#java环境安装
[root@localhost ~]# cd /usr/src/
[root@localhost src]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz
root@localhost ~]# tar xf /usr/src/apache-tomcat-9.0.54.tar.gz -C /usr/local/
[root@localhost ~]# ls /usr/local/
apache-tomcat-9.0.54  bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@localhost ~]# ln -sv /usr/local/apache-tomcat-9.0.54/ /usr/local/tomcat
'tomcat' -> 'apache-tomcat-9.0.54/'

//启动tomcat
[root@localhost ~]# /usr/local/tomcat/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@localhost ~]# 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              [::]:*              

下载jenkins

[root@localhost ~]# wget https://get.jenkins.io/war-stable/2.303.2/jenkins.war
[root@localhost ~]# ls
anaconda-ks.cfg  jenkins.war

// 将webapps下的其他项目删除
[root@localhost ~]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]#  rm -rf docs  examples  host-manager test manager 
[root@localhost webapps]#  ls
ROOT

//将jenkins.war复制到webapps
[root@localhost webapps]# cp ~/jenkins.war .
[root@localhost webapps]# ls
jenkins.war  ROOT
[root@localhost webapps]#  ls
jenkins  jenkins.war  ROOT

在这里插入图片描述

//查看管理员密码
[root@localhost webapps]#  cat /root/.jenkins/secrets/initialAdminPassword
d95044e105e74317a36f97cc55865703

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值