Jenkins介绍与部署

一、 CICD核心概念

CICD是持续集成(continuous integration,CI),持续交付(continuous delivery,CD),持续部署(continuous Deployment,CD)的简称。
指在开发过程中自动执行一系列脚本来减低开发引入bug的概率,在新代码从开发到部署的过程中,尽量减少人工的介入。

1.持续集成

持续集成指的是,频繁地(一天多次)将代码集成到主干。

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

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

在这里插入图片描述

2.持续交付

持续交付指的是频繁的将软件的新版本交付给质量团队或用户,以供评审,如果评审通过,代码就进入生产阶段。
持续交付可以看作是持续集成的下一步,强调的是,不管怎样更新,软件是随时随地可以交付的。

在这里插入图片描述

3.持续部署

持续部署是持续交付的下一步,指的是代码通过评审之后,自动部署到生产环境。
持续部署的目标是:代码在任何时候都是可以部署的,可以进入生产阶段。
持续部署的前提是能自动化完成测试,构建,部署等步骤。

在这里插入图片描述

二、jenkins用途与特性

主要用途

  1. 持续、自动地构建/测试软件项目。

  2. 监控一些定时执行的任务。

Jenkins主要特性

  1. 易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。

  2. 易于配置-所有配置都是通过其提供的web界面实现。

  3. 集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。

  4. 生成JUnit/TestNG测试报告。

  5. 分布式构建支持Jenkins能够让多台计算机一起构建/测试。

  6. 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。

  7. 插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。

三、Jenkins常用功能介绍

Jenkins其实就是一个工具,这个工具的作用就是调用各种其他的工具来达成你的目的。

1、备份、迁移、恢复jenkins

首先找到JENKINS_HOME,因为Jenkins的所有的数据都是以文件的形式存放在JENKINS_HOME目录中。不管是迁移还是备份,只需要操作JENKINS_HOME就行了。

迁移:建议将JENKINS_HOME打包后在拷贝,windows可以用zip,rar等,Linux有zip,tar等,然后将打包的文件解压到新的JENKINS_HOME目录就行了。

备份:如果是临时备份,整个压缩文件就行了。

恢复:恢复的时候需要先停止jenkins。

2、升级Jenkins

Jenkins的开发迭代非常快,每周发布一个开发版本,长期支持版每半年更新一次(ps:大版本更新)。如此频繁的更新,怎么升级呢?

war:下载新版的war文件,替换旧版本war文件。重启即可。

二进制:卸载旧版本,安装新版本即可。

Jenkins程序下载地址:http://mirrors.jenkins-ci.org/

note:升级前,请测试该版本和你本地数据的兼容性。如何测试:将JENKINS_HOME拷贝一份到新的机器,用新版的程序启动。测试对应的插件和配置。

3、移动,删除或修改jobs

对于移动或删除jobs,只需要简单地移动或删除%JENKINS_HOEM%\jobs目录。

对于修改jobs的名字,只需要简单地修改%JENKINS_HOEM%\jobs下对应job的文件夹的名字。

对于不经常使用的job,只需要对%JENKINS_HOEM%\jobs下对应的jobs的目录zip或tar后存储到其他的地方。

4、Jenkins 启动时的命令行参数

–httpPort=$HTTP_PORT,用来设置jenkins运行时的web端口。

–httpsPort=$HTTP_PORT,表示使用https协议。

–httpListenAddress=$HTTP_HOST,用来指定jenkins监听的ip范围,默认为所有的ip都可以访问此jenkins server。

5、修改jenkins的TImezone

如果jenkins所在的server的TImezone不同于用户的TImezone,这时候需要修改jenkins的TImezone,需要在jenkins启动的时候增加下列参数-Dorg.apache.commons.jelly.tags.fmt.timeZone=TZ

6、通过脚本启动jenkins

set JENKINS_HOME=C:\Documents and Settings\Administrator.hudson

cd /d %JENKINS_HOME%

java -jar jenkins.war --httpPort=8080

保存文件名为startjenkins.bat

7、查看jenkins的系统信息

以在jenkins的管理页面下的系统信息中,查看所有的jenkins的信息,例如jenkins的启动配置,所依赖的系统的环境变量,所安装的plugins。

10、介绍一些常用的Jenkins插件

插件下载地址:https://wiki.jenkins-ci.org/display/JENKINS/Plugins 或 http://updates.jenkins-ci.org/download/plugins/

perforce的label功能来对成功的build进行label
Dashboard View 用来自定义自己的主页
Deploy Plugin插件支持将War/Jar部署到远程的应用服务器上,例如Tomcat,JBoss,Glassfish。正在寻找或开发.NET web 应用的自动发布插件。
Publish Over FTP Plugin这个插件可以将构建的产物(例如:Jar)发布到FTP中去。
Publish Over SSH这个插件可以通过ssh连接其他Linux机器
JobConfigHistory Plugin 非常有用,可以查看job历史配置信息
sidebar links这个插件不错,可以添加一些链接到jenkins上,比如把fitnesse的测试集链接添加到上面,方便访问。

四.Jenkins部署

部署tomcat

// 关闭防火墙和selinux
[root@localhost ~]# systemctl disable --now firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# vim /etc/selinux/config 
[root@localhost ~]# reboot
[root@localhost ~]# getenforce 0
Disabled



// 安装依赖包和工具
[root@localhost ~]# yum -y install java-11-openjdk* vim wget

// 下载Apache-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  etc    include  lib64    sbin   src
bin                   games  lib      libexec  share
[root@localhost local]# mv apache-tomcat-9.0.54/ tomcat

[root@localhost ~]# cd /usr/local/tomcat/bin/
[root@localhost bin]# ls
bootstrap.jar                 configtest.sh     shutdown.sh
catalina.bat                  daemon.sh         startup.bat
catalina.sh                   digest.bat        startup.sh
catalina-tasks.xml            digest.sh         tomcat-juli.jar
ciphers.bat                   makebase.bat      tomcat-native.tar.gz
ciphers.sh                    makebase.sh       tool-wrapper.bat
commons-daemon.jar            setclasspath.bat  tool-wrapper.sh
commons-daemon-native.tar.gz  setclasspath.sh   version.bat
configtest.bat                shutdown.bat      version.sh
[root@localhost bin]# /usr/local/tomcat/bin/startup.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 bin]# ss -anlt
State   Recv-Q  Send-Q        Local Address:Port     Peer Address:Port  
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               [::]:*     

使用tomcat部署Jenkins

// 将tomcat的配置web配置文件删除,替换成Jenkins包
[root@localhost bin]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# ls
docs  examples  host-manager  manager  ROOT
[root@localhost webapps]# rm -rf docs/ examples/ host-manager/ manager/
[root@localhost webapps]# ls
ROOT
[root@localhost webapps]# cd ROOT/
[root@localhost ROOT]# ls
asf-logo-wide.svg  bg-nav.png    index.jsp          tomcat.svg
bg-button.png      bg-upper.png  RELEASE-NOTES.txt  WEB-INF
bg-middle.png      favicon.ico   tomcat.css
[root@localhost ROOT]# rm -rf *
[root@localhost ROOT]# ls

// 在/usr/local/tomcat/webapps目录下载jenkins包
[root@localhost ROOT]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# wget http://mirrors.jenkins.io/war-stable/2.303.2/jenkins.war


// 重启服务,就会生成Jenkins的目录
[root@localhost webapps]# /usr/local/tomcat/bin/shutdown.sh
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@localhost webapps]# /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 webapps]# ls
jenkins  jenkins.war  ROOT

在浏览器中使用http://192.168.153.155:8080/jenkins/地址访问,安装Jenkins
在这里插入图片描述
查看密码,并输入密码

[root@localhost ~]# cat /root/.jenkins/secrets/initialAdminPassword
598584a8ce5c4acdb9f72ac0a8a8c3a5

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装完成
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值