持续化集成,发布离不开CICD,CICD中有最重要的一个程序就是jenkins,本章主要讲jenkins部署和建立项目任务

  jenkins的出现,大大的提高了代码上线问题,通过图中可以看出,开发人员通过git客户端,将写的代码包丢给gitlub,jenkins会按我们给出的要求规则,自动拉取gitlub里的代码包,然后对它自动的打包,并进行测试,最后测试完成后,推送到tomcat服务器(java运行环境)上。这样的过程,就实现了持续部署与发布。在这里,jenkins是一种web界面,更简单,便捷的管理


由此可见:jenkins是帮我们将代码进行统一的编译打包,还可以放到tomcat容器中进行发布

  首先简单了解一下jenkins历史:起源于hudson(商用的,收费的),主要用于持续,自动的构建/测试软件项目,监控一些定时任务,jenkins是用Java语言编写,可在tomcat等流行的容器中运行,也可以独立运行。jenkins通常和版本工具一起使用:git   ;  jenkins构建工具有:maven,ant,gradle

jenkins主要目标:监控软件开发流程;快速显示问题;提高开发效率;过程控制;

选择它并使用它的原因:它易于配置,并且有强大的测试报告!还有文件识别(识别java中每次构建生成了哪些jar包及使用哪个版本的包);还此次分布式构建;有强大的插件支持!(job任务与build构建)


了解jenkins差不多后,我们开始构建一个完整的CICD集群部署并简单的使用它 !! (这里使用maven工具来构建jenkins)

分以下几步:

  • 基础环境部署
  • 部署git
  • jdk环境部署
  • 部署maven
  • 部署jenkins
  • 管理插件
  • 检查错误配置
  • jenkins系统配置
  • 额外:设置中文

=================================基础环境部署=====================================

  代码仓库:使用github

  一台服务器:部署jenkins

  一台服务器:充当tomcat服务器(业务主机)

安装依赖包:

#yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

=================================部署git=================================

下载最新git包:wget  https://mirrors.edge.kermel.org/pub/software/scm/git/

这里我下载的是git-2.9.5版本  (源码)

下载完后编译安装:过程时间长,这里就看图吧

以上完成后,添加环境变量

#echo "PATH=$PATH:$HOME/bin:/usr/local/git/bin"  >>  vim /etc/bashrc

以上git部署就部署完毕了

=========================jdk环境部署===================================

这里我系统里有jdk了,版本是8的,这里注意一下,本节不能下载9和10版本的jdk,不然会和git版本不对称

=========================部署maven==========================

首先我们要了解一下这是个什么包?maven包作用其实是:当jenkins下载下来的代码后,将其打包的作用。简单来说就是一个打包工具

下载:wget   https://mirrors.bit.edu.cn/apache/maven/maven-3/3.5.4/binaries/

#  tar xvf apache-maven-3.5.4-bin.tar.gz -C /usr/local/

解压后并修改名

添加maven的环境变量:

<--

PATH=$PATH:$HOME/bin:/usr/local/git/bin
export M2_HOME=/usr/local/maven
export M2=$M2_HOME/bin
PATH=$M2:$PATH:$HOME/bin:/usr/local/git/bin
export PATH

-->

保存退出后查看一下是否成功:#mvn  -version  出来版本好就是部署成功了

======================================部署tomcat=============================

下载tomcat,,,这里找9.0.版的,防止版本冲突导致报错

下载地址:https://mirrors.bit.edu.cn/apache/tomcat

如图,做以下操作:

图上的环境变量添加以下两行

# CATALINA_HOME=/usr/local/tomcat
# export CATALINA_HOME

注意,不要开启tomcat,先关闭它

================================部署jenkins=================================

下载地址:https://updates.jenkins-ci.org/download/war/

这里我们下载最新的即可----2.264

下载好后是一个war包

下一步将war包部署在tomcat上

#  cp jenkins.war /usr/local/tomcat/webapps/

#  /usr/local/tomcat/bin/startup.sh

启动完成后,tomcat会自动解压war包

1.接下来我们通过web浏览器来安装jenkins(如图:)

2.按照提示输入后:选择默认的安装(左边)

3.接下来会下载一些必要的插件,绿色是下载没问题,有可能会出现红色,如果出现红色,无非是网络状态不好,点击“重试”即可(千万别点“跳过”)

4.如果以上下载顺利,全部是绿了,会自动跳到以下界面,我们来完成创建用户

这里小编一不小心手快  (0.0)``,创建用户的界面没截上.....这里就不做图了........

5.创建完成后,点击开始使用,jenkins的部署就完成了

6.登陆主页面(完成)

==================================管理插件==================================

以上jenkins虽已经部署好

如果是以上插件加载中失败该怎么办?对于工作中如何添加必要的插件该怎么装?

首先我们要解决以上问题,因为我们是自动化部署的,所以要做一下小改动(1,2,3,4)步

1,安装插件deploy to container工具包(在cicd流程中是将代码推送给tomcat的一个工具)

选择mange插件管理

搜索,勾选后,点击“直接下载”

2,安装插件maven intergtion

和以上插件安装方法一样

3,安装git相关3个插件  (github authentication /  github branch source  /  github organization folder )

和以上插件安装方法一样

4,安装插件:Publish over ssh

和以上插件安装方法一样

以上每一个安装插件,最后都会显示完成即可:

=================================检查错误配置=================================

1,系统错误

  如果有字符乱码问题,可以到tomcat>conf>server,xml文件中添加即可

  1  <?xml version="1.0" encoding="UTF-8"?>

如果有反向代理的错误,请忽略

================================jenkins系统设置=================================

这里没有强调就都设置为默认即可

还有一个全局配置:在这里我们配置一下jdk,git,maven的根目录(因为在装jenkins前,我们装了这三个软件,jenkins并不知道它们在哪里)

这里的系统配置也是在web界面配置

选择全局配置

进入后,点击新增即可

以上修改完后,点击保存退出即可

==============================额外:设置中文=============================

(设置jenkins为中文页面:

1,首先先装一个插件:locale plugin

2,到系统设置里面,找到 default  language

  写:zh_CN

=======================================================================

下一章我们将进行任务部署----模拟代码上线的过程----

CICD中一个巨头--jenkins的更多相关文章

  1. 第四十二章 微服务CICD(4)- jenkins + gitlab + webhooks + publish-over-ssh(2)

    上一节完成了"当git客户端push代码到gitlab后,jenkins会立即去gitlab拉取代码并构建". 目的:本节完成jenkins自动构建之后,自动的将jar包部署到应用 ...

  2. 在 Intellij 中设置集成 Jenkins 服务器连接

    如何在 Intellij 中设置集成 Jenkins 服务器连接 在Intellij中可以很方便的设置Jenkins服务器,不用登录到浏览器中,在Intellij中即可浏览所有job,开发plugin ...

  3. Sql Server 中一个非常强大的日期格式化函数

    Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0)-- 05 16 2006 10:57AMSelect CONV ...

  4. oracle 编译中一个关于clntsh 库的一个 帖子 ,收藏!

    oracle 编译中一个关于clntsh 库的一个 帖子 ,收藏! ------------------------------------------------------------------ ...

  5. php中一个"异类"语法: $a && $b = $c;

    php中一个"异类"语法: $a && $b = $c;     $a = 1;$b = 2;$c = 3;$a && $b = $c;echo & ...

  6. oracle中一个字符串包含另一个字符串中的所有字符

    oracle中一个字符串包含另一个字符串中的所有字符 --解决监理报告中所勾选的标段信息,与该用户所管理的标段字符串不匹配的问题. select * from a where instr(a,b)&g ...

  7. Spark小课堂Week7 从Spark中一个例子看面向对象设计

    Spark小课堂Week7 从Spark中一个例子看面向对象设计 今天我们讨论了个问题,来设计一个Spark中的常用功能. 功能描述:数据源是一切处理的源头,这次要实现下加载数据源的方法load() ...

  8. Android中一个类实现的接口数不能超过七个

    近期一段时间,在开发Android应用程序的过程中,发现Android中一个类实现的接口数超过七个的时候,常常会出现超过第7个之后的接口不能正常使用.

  9. Linux中一个文件10行内容,如何输出5-8内容到屏幕

    题目是这样的,Linux中一个文件10行内容,如何输出5-8内容到屏幕首先我们模拟一下这样的环境: [root@localhost question]# pwd /root/question [roo ...

  10. [20180904]工作中一个错误.txt

    [20180904]工作中一个错误.txt --//昨天看我提交一份修改建议,发现自己写的sql语句存在错误.--//链接:http://blog.itpub.net/267265/viewspace ...

随机推荐

  1. 解决Hbuliderx的代码不能自动补全的问题

    1.先关掉HBuilder X编辑器 2.找到安装目录下的reset.bat 3.点击reset.bat,提示"确认清除HBuilder X的所有配置吗? 按任意键回车继续,或输入N回车退出 ...

  2. php中的错误异常处理

    作者:小涵 |  阅读: 1636 在PHP5中添加了类似于其它语言的错误异常处理模块.在PHP代码中所产生的异常可被throw语句抛出并被catch语句捕获.需要进行异常处理的代码都必须放入 在PH ...

  3. C++容器map、unordered_map、set、unordered_set的区别

    1.map: 底层由红黑树实现. Key在红黑树中有序排列,对红黑树进行中序遍历即可得到Key从小到大的排序序列. 使用map可在O(1)的时间复杂度下快速查找到Key. 2.unordered_ma ...

  4. QtQuick与Qml介绍

    文章纲要: 1.QtQuick是什么 2.qml与QtQuick关系 一.QtQuick是什么 "quick--快速创建应用程序" "quick--Qt User Int ...

  5. Django的反向解析

    Django的请求生命周期是指用户在浏览器访问网页时,Django根据网址在路由列表里查找相应的路由,在从路由里找到视图函数或视图类进行处理,将处理结果作为相应内容返回浏览器并生成网页内容. 这个生命 ...

  6. Mac用自带软件QuickTime Player进行录屏

    ​ Mac电脑用自带软件QuickTime Player进行录屏的教程,几步就可以学会,挺简单的. 1.首先,找到并打开QuickTime Player软件.可以鼠标右键这个图标,选择"选项 ...

  7. uni小程序保存base64图片

    使用uni.getFileSystemManager().writeFile去下载base64图片<view class="share-btn" @click="s ...

  8. 音乐下载器,音乐解析软件,全网音乐免费下载,mp3格式音乐下载,flac格式音乐下载,无损音质音乐下载器,你想听的都搜的到~

    在这个音乐版权被三分天下的时代,想必大家也都会有这种的困扰,喜欢的音乐很多,刚好这些音乐的版权还分散在三大主流音乐厂商的手里. 这样的话,想要听或者下载自己喜欢的音乐可能要开多个会员,而且下载的音乐单 ...

  9. windows文件夹被占用的解除办法

    1.第一步,按下快捷键组合 ctrl alt del,打开任务管理器窗口,点击上方菜单栏中的性能选项. 2. 第二步,在性能页面下找到打开资源监视器按钮并点击. 3. 第三步,进入资源监视器页面,点击 ...

  10. CentOS 7关闭防火墙 SElinux 配ip

    屏蔽出站 iptables -t filter -A OUTPUT --dst 192.168.0.191/32 -j DROP iptables -t filter -A OUTPUT --dst ...