Jenkins部署发布

一 jenkins介绍

Jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译、打包、分发部署。jenkins可以很好的支持各种语言(比如:java, c#, php等)的项目构建,也完全兼容ant、maven、gradle等多种第三方构建工具,同时跟svn、git能无缝集成,也支持直接与知名源代码托管网站,比如github、bitbucket直接集成。
提到持续集成免不了谈及Hudson,Hudson是SunMicrosystems 开发的一个非常流行的开源的基于Java 的持续集成工具,后来Sun被Oracle收购,从Hudson 源代码的分支诞生了Jenkins。
jenkins其实就是大的框架集,可以整个任何你想整合的内容,实现公司的整个持续集成体系!如:自动化,性能,打包,部署,发布&发布结果自动化验证,接口测试,单元测试。

二 特点

——开源的java语言开发持续集成工具,支持CI,CD。
——易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等 快速实现安装部署,可方便web界面配置管理。
——消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。
——分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
——文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
——丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。

三 CI持续集成

什么是持续集成?

软件开发中,集成是一个很可能发生未知错误的过程。持续集成是一种软件开发实践,希望团队中的成员频繁提交代码到代码仓库,且每次提交都能通过自动化测试进行验证,从而使问题尽早暴露和解决。

特点
——通过自动化测试可以提早拿到回归测试的结果,避免将一些问题提交到交付生产中。
——发布编译将会更加容易,因为合并之初已经将所有问题都规避了。
减少工作问题切换,研发可以很快获得构建失败的消息,在开始下一——个任务之前就可以很快解决。
测试成本大幅降低,你的CI服务器可以在几秒钟之内运行上百条测试。
——团队花费在测试上面的时间会大幅缩短,将会更加侧重于质量文化的提升上面

四 CD持续交付

持续交付(CD)通常是指整个流程链(管道),它自动监测源代码变更并通过构建、测试、打包和相关操作运行它们以生成可部署的版本,基本上没有任何人为干预。
持续交付在软件开发过程中的目标是自动化、效率、可靠性、可重复性和质量保障(通过持续测试)。
持续交付包含持续集成(自动检测源代码变更、执行构建过程、运行单元测试以验证变更),持续测试(对代码运行各种测试以保障代码质量),和(可选)持续部署(通过管道发布版本自动提供给用户)

特点
——发布频率更快,因为你不需要停下来等待发布。每一处提交都会自动触发发布流
——在小批量发布的时候,风险降低了,发现问题也可以很轻松的修复
客户每天都可以看到我们的持续改进和提升,而不是每个月或者每季度,或者每年

五 持续部署(CD)
持续部署扩展了持续交付,以便软件构建在通过所有测试时自动部署。在这样的流程中, 不需要人为决定何时及如何投入生产环境。CI/CD 系统的最后一步将在构建后的组件/包退出流水线时自动部署。 此类自动部署可以配置为快速向客户分发组件、功能模块或修复补丁,并准确说明当前提供的内容。采用持续部署的组织可以将新功能快速传递给用户,得到用户对于新版本的快速反馈,并且可以迅速处理任何明显的缺陷。 用户对无用或者误解需求的功能的快速反馈有助于团队规划投入,避免将精力集中于不容易产生回报的地方。

六 Jenkins部署

[root@103 ~]# wget https://get.jenkins.io/war-stable/2.303.2/jenkins.war
[root@103 ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz
[root@102 ~]# yum -y install java-11-openjdk*
[root@102 ~]# tar xf apache-tomcat-9.0.54.tar.gz -C /usr/local/
[root@103 ~]# cd /usr/local/
[root@103 local]# mv apache-tomcat-9.0.54/ tomcat
[root@103 local]# cd tomcat/
[root@103 tomcat]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work
[root@103 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@103 tomcat]# ss -atnl
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          100                             *:8080                    *:*                    
LISTEN     0          128                          [::]:22                   [::]:*                    
LISTEN     0          1              [::ffff:127.0.0.1]:8005                    *:*  

访问ip地址加8080
在这里插入图片描述

[root@103 tomcat]# ls webapps/
docs  examples  host-manager  manager  ROOT
[root@103 tomcat]# mv webapps/ROOT/ /opt/
[root@103 tomcat]# rm -rf webapps/*
[root@103 tomcat]# mv /opt/ROOT/ webapps/
[root@103 tomcat]# cd webapps/
[root@103 webapps]# ls
ROOT
[root@103 local]# ./tomcat/bin/catalina.sh stop
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:   
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
[root@103 local]# mv tomcat/ jenkins
[root@103 local]# ls
bin  etc  games  include  jenkins  lib  lib64  libexec  sbin  share  src
[root@103 local]# cd jenkins/
[root@103 jenkins]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work
[root@103 jenkins]# cd webapps/
[root@103 webapps]# cd ROOT/
[root@103 ROOT]# rm -rf *
[root@103 ROOT]# cd ..
[root@103 webapps]# cp ~/jenkins.war .
[root@103 webapps]# ls
jenkins.war  ROOT
[root@103 webapps]# ../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@103 webapps]# ls
jenkins  jenkins.war  ROOT

七 web页面安装与功能介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
发布历史
在这里插入图片描述
用户视图My Views
在这里插入图片描述
New view新建视图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
错误信息显示
在这里插入图片描述
关于jenkins
在这里插入图片描述
在这里插入图片描述
负载状态
在这里插入图片描述
在这里插入图片描述
配置菜单 重新加载 命令行 脚本命令行 关闭jenkins
在这里插入图片描述
管理用户
在这里插入图片描述
在这里插入图片描述
用户视图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
凭据
在这里插入图片描述
拉代码,记录账号和密码就叫凭证
在这里插入图片描述
全局安全
在这里插入图片描述
不要记住我
在这里插入图片描述
ssh 端口指定
在这里插入图片描述
插件
在这里插入图片描述
插件管理
在这里插入图片描述
代理设置
在这里插入图片描述
切换站点
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
在这里插入图片描述
全局配置 扳手图案
在这里插入图片描述
工具配置安装
在这里插入图片描述
询问开发打包工具
在这里插入图片描述
手动安装需要填写目录路径或自动安装
在这里插入图片描述
配置系统
在这里插入图片描述
主目录
在这里插入图片描述
系统管理员邮箱
在这里插入图片描述
使用统计取消勾选
在这里插入图片描述
邮箱认证
在这里插入图片描述

八 使用jenkins进行java代码打包发布案例

确认开启服务端状态

[root@103 ~]# cd /usr/local/jenkins/
bin/     conf/    lib/     logs/    temp/    webapps/ work/    
[root@103 ~]# cd /usr/local/jenkins/webapps/
[root@103 webapps]# ../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@103 webapps]# ss -atnl
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           100                          *:8080                      *:*                    
LISTEN     0           128                       [::]:22                     [::]:*                    
[root@103 webapps]# 

创建一个流水线项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择功能Hello World
在这里插入图片描述
点击 Build Now立即构建
在这里插入图片描述
查看命令行输出
在这里插入图片描述
返回到项目
在这里插入图片描述
视图输出结果
在这里插入图片描述
拉到自己的仓库Fork
在这里插入图片描述

// 目标主机
[root@106 ~]# cd /usr/local/tomcat/webapps/
[root@106 webapps]# ss -atnl
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           128                       [::]:22                     [::]:*                    
[root@106 webapps]# ../bin/
catalina.sh      configtest.sh    digest.sh        setclasspath.sh  startup.sh       version.sh
ciphers.sh       daemon.sh        makebase.sh      shutdown.sh      tool-wrapper.sh  
[root@106 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@106 webapps]# ss -atnl
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           100                          *:8080                      *:*                    
LISTEN     0           128                       [::]:22                     [::]:*   
// 免密登入
ssh-keygen -t rsa
ssh-copy-id root@192.168.143.106
[root@103 opt]# yum install -y git
[root@103 opt]# git clone https://gitee.com/hyhxy0206/tomcat-java-demo.git
正克隆到 'tomcat-java-demo'...
remote: Enumerating objects: 558, done.
remote: Counting objects: 100% (558/558), done.
remote: Compressing objects: 100% (316/316), done.
remote: Total 558 (delta 217), reused 558 (delta 217), pack-reused 0
接收对象中: 100% (558/558), 5.08 MiB | 434.00 KiB/s, 完成.
处理 delta 中: 100% (217/217), 完成.
[root@103 opt]# ls
tomcat-java-demo
[root@103 opt]# yum install -y maven-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch
[root@103 opt]# cd tomcat-java-demo/
[root@103 tomcat-java-demo]# mvn clean package
[root@103 tomcat-java-demo]# cd target/
[root@103 target]# ls
classes            ly-simple-tomcat-0.0.1-SNAPSHOT      maven-archiver
generated-sources  ly-simple-tomcat-0.0.1-SNAPSHOT.war  maven-status
[root@103 target]# mv  ly-simple-tomcat-0.0.1-SNAPSHOT.war myapp.war
[root@103 target]# ls
classes  generated-sources  ly-simple-tomcat-0.0.1-SNAPSHOT  maven-archiver  maven-status  myapp.war
[root@103 target]# cd ..
[root@103 tomcat-java-demo]# scp  target/myapp.war root@192.168.143.106:/usr/local/tomcat/webapps
myapp.war    
// 目标主机
 [root@106 webapps]# ls
docs  examples  host-manager  manager  myapp  myapp.war  ROOT

在这里插入图片描述
jenkins自动化部署
点击配置
在这里插入图片描述
在这里插入图片描述
选择github模式
在这里插入图片描述
清除m3命令
在这里插入图片描述
只保留拉代码与打包多余删除
在这里插入图片描述
替换代码https://gitee.com/hyhxy0206/tomcat-java-demo.git
在这里插入图片描述
保存构建
在这里插入图片描述
在这里插入图片描述
点击视图,打包结果如下
在这里插入图片描述
#打包结果

[root@103 tomcat-java-demo]# cd /root/.jenkins/workspace/
[root@103 workspace]# ls
demo  demo@tmp
[root@103 workspace]# ls demo
db  deploy.yaml  Dockerfile  jenkinsfile  LICENSE  pom.xml  README.md  src  target
[root@103 workspace]# cd demo
[root@103 demo]# ls
db  deploy.yaml  Dockerfile  jenkinsfile  LICENSE  pom.xml  README.md  src  target
[root@103 demo]# ls target/
classes            ly-simple-tomcat-0.0.1-SNAPSHOT      maven-archiver
generated-sources  ly-simple-tomcat-0.0.1-SNAPSHOT.war  maven-status
[root@103 demo]# 

自动改名称
mv ly-simple-tomcat-0.0.1-SNAPSHOT.war myapp.war 放到流程线
在这里插入图片描述
在这里插入图片描述
##查看结果

[root@103 demo]# ls target/
classes  generated-sources  ly-simple-tomcat-0.0.1-SNAPSHOT  maven-archiver  maven-status  myapp.war

##备份操作

[root@106 myapp]# mkdir -p /opt/backup
// 手动操作
[root@103 demo]# ssh root@192.168.143.106 'tar -Jcf /opt/backup/myapp-$(date +%Y%m%d%H%M).tar.xz /usr/local/tomcat/webapps/myapp'
tar: 从成员名中删除开头的“/”
[root@103 demo]# ssh root@192.168.143.106 'tar -Jcf /opt/backup/myapp-$(date +%Y%m%d%H%M).tar.xz /usr/local/tomcat/webapps/myapp'
tar: 从成员名中删除开头的“/”
[root@103 demo]# 
// 查看
[root@106 myapp]# ls /opt/backup/
myapp-202110190504.tar.xz
[root@106 myapp]# ls /opt/backup/
myapp-202110190504.tar.xz  myapp-202110190505.tar.xz
[root@106 myapp]#
pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                // Get some code from a GitHub repository
                git 'https://gitee.com/hyhxy0206/tomcat-java-demo.git'

                // Run Maven on a Unix agent.
                sh "mvn -Dmaven.test.failure.ignore=true clean package"
                sh "mv target/ly-simple-tomcat-0.0.1-SNAPSHOT.war target/myapp.war"
                // To run Maven on a Windows agent, use
                // bat "mvn -Dmaven.test.failure.ignore=true clean package"
            }

            
        }
        stage("publish"){
            steps{
                  sh "ssh root@192.168.143.106 'tar -Jcf /opt/backup/myapp-\$(date +%Y%m%d%H%M).tar.xz /usr/local/tomcat/webapps/myapp'" 
                  sh "scp target/myapp.war root@192.168.143.106:/usr/local/tomcat/webapps/"
                  sh "ssh root@192.168.143.106 '/usr/local/tomcat/bin/catalina.sh stop'"
                  sh "sleep 3"
                  sh "ssh root@192.168.143.106 '/usr/local/tomcat/bin/catalina.sh start'"
            }
        }
    }
}

点击流水线语法
在这里插入图片描述
git高级用法la私有仓库
在这里插入图片描述
添加凭证
在这里插入图片描述
在这里插入图片描述
选择凭据生成脚本
在这里插入图片描述
添加到流水线
在这里插入图片描述
点击流水线语法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击在线文档
在这里插入图片描述
在这里插入图片描述
在线文档jenkins入门
在这里插入图片描述
点击创建流水线
在这里插入图片描述
在这里插入图片描述
执行多个步骤
在这里插入图片描述
在这里插入图片描述
定义执行环境
在这里插入图片描述
使用变量环境
在这里插入图片描述
记录测试
在这里插入图片描述
清理和通知
在这里插入图片描述
在这里插入图片描述
部署
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值