传统应用发布模式
一般一个开发团队中都会存在多个角色:开发、测试、运维。当时我们的应用发布模式可以能是这样的:
- 开发同学进行项目代码开发,本地运行测试成功后将代码上传到版本控制系统。
- 开发同学通知运维同学项目可以发布了,然后运维同学下载代码进行打包和构建,生成应用制品。
- 运维同学使用部署脚本将生成的制品部署到测试环境,并提示测试同学可以进行产品的测试。
- 测试同学开始进行手动、自动化测试,测试完成后提醒运维同学可以进行预生产环境部署。
- 运维同学开始进行预生产环境部署,然后测试同学进行测试,测试完成后,开始部署生产环境。
手动操作很多、出现的问题很多。上面看似很流畅的过程,其实每次构建或发布都可能会出现问题。未对每次提交验证、构建环境不一致:开发人员本地测试成功后提交代码,运维同学下载代码进行编译却出现了错误。
Jenkins简介与应用场景
对于持续集成工具现在也有很多,目前应用最多的是Jenkins。Jenkins前身是Hudson,使用java语言开发的自动化发布工具。Jenkins是跨平台的可以在Win、Linux、MacOS部署。Jenkins是应用最广的开源免费的持续集成服务器,企业中普遍使用Jenkins来作为项目集成发布工具。Jenkins官方提供的插件使Jenkins更为强大。目前发展超过15年,比较成熟的CI工具(也可以CD)能够实现自动化集成发布。目前普遍使用Jenkins完成持续集成CI/持续部署CD等相关技术实践。 可以把Jenkins想象成一个脚本执行器,我们可以通过编写代码的方式灵活的控制Jenkins作业的运行与控制。
应用场景
- 持续集成实践
-
- 集成svn/git客户端实现源代码下载检出
- 集成maven/ant/gradle/npm等构建工具实现源码编译打包单元测试
- 集成sonarqube对源代码进行质量检查(坏味道、复杂度、新增bug等)
- 持续部署实践
-
- 集成SaltStack/Ansible实现自动化部署发布
- 自动化测试实践
-
- 集成Jmeter/Soar/Kubernetes/.....
功能特点
- 开源免费
- 多平台支持(windows/linux/macos)
- 主从分布式架构
- 提供web可视化配置管理页面
- 安装配置简单
- 插件资源丰富
官网
- http://jenkins.io
Jenkins安装部署
关于Jenkins的安装可以使用rpm或者war包安装,需要提前安装好JDK8+环境。 Jenkins采用分布式架构,分为server节点和agent节点。server节点也是可以运行构建任务的,但我们一般使其主要来做任务的调度。(毕竟server节点挂了就都...)agent节点专门用于任务的执行。随着现在容器的盛行,我们可以将server节点和agent节点在容器或者基于Kubernetes中部署。关于agent节点借助容器可以实现动态的资源分配等等好处。agent节点可以分为静态节点和动态节点。静态节点是固定的一台vm虚机或者容器。动态节点是随着任务的构建来自动创建agent节点。
安装JDK环境
- 如果使用rpm的方式安装的Jenkins需要提前安装好JDK,Jenkins Slave运行也需要使用JDK。
[root@i-1nawyxkx ~]# yum install -y java-11-openjdk*
- 添加环境变量
[root@i-1nawyxkx ~]# cat >> /etc/profile<<EOF export JAVA_HOME=/usr/lib/jvm/jre-11-openjdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar EOF [root@i-1nawyxkx ~]# java -version openjdk version "11.0.13" 2021-10-19 LTS OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)
安装Jenkins Master
- rpm包安装地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable
- 下载rpm包
[root@i-1nawyxkx ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.319.1-1.1.noarch.rpm Retrieving https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.319.1-1.1.noarch.rpm warning: /var/tmp/rpm-tmp.PkYd9g: Header V4 RSA/SHA512 Signature, key ID 45f2c3d5: NOKEY Preparing... ################################# [100%] file /usr/lib/jenkins/jenkins.war from install of jenkins-2.319.1-1.1.noarch conflicts with file from package jenkins-2.303.2-1.1.noarch
- 修改启动用户
JENKINS_USER="root"
- 启动服务
[root@i-1nawyxkx ~]# systemctl start jenkins.service [root@i-1nawyxkx ~]# netstat -tnlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 566/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 744/master tcp6 0 0 :::22 :::* LISTEN 566/sshd tcp6 0 0 ::1:25 :::* LISTEN 744/master tcp6 0 0 :::8080 :::* LISTEN 16265/java
- 访问http://ip:8080/
视频操作地址
- 复制一下链接到浏览器,记得关注今日头条号,掌握最新资料。
- https://www.ixigua.com/7040845651705332263?wid_try=1
- 我的QQ
- QQ扫一扫
-
- 我的头条
- 头条扫一扫
-
评论