持续化集成,发布离不开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. vue增强第三方UI库(element-ui)

    vue增强第三方UI库(element-ui) 目前笔者了解有以下思路拓展第三方ui库,此系列以element-ui作为例子 指令. 混入. 二次封装. fork一份element-ui仓库,修改代码 ...

  2. Prowide Core:SWIFT [tm] MT(FIN)消息传递的Java框架 开源

    Prowide Core(以前称为WIFE)是用于管理SWIFT MT消息的开源Java框架. 库的主要功能是针对所有MT消息类型的全面Java模型,以及简单易懂的解析和构建API. 该项目自2006 ...

  3. python 非阻塞线程对话框,非qt(解决qt MessageBox使用线程时候卡死问题)

    def msg_okbox(self, strinfo, isYesno=False): if isYesno: return win32api.MessageBox(None, strinfo, & ...

  4. 粉色的猫MISC(bugku)

    一  题目描述 ps:本题特别感谢树叶大佬给的一些提示以及WP!欢迎大家关注树木有点绿~~ 二 解题过程 下载附件得到zip压缩包 根据作者提示,压缩包注释应该为压缩包密码. 1.压缩包密码 一开始看 ...

  5. Software--C#--grammer_Delegate--Event

    2018-05-01 10:49:47 委托是一种类型,而事件是一个类或结构的成员,如同字段,属性.必须在类或结构中声明. 引申 -  Observe 观察者模式  Publish/Subscribe ...

  6. MeterSphere中dubbo接口测试分享

    一.域名解释 1.1.接口文档:UserAccountAssetServiceI.getUserAccountVirtualAsset UserAccountAssetServiceI(接口名,需要用 ...

  7. web基础(6): CSS综合实例-咖啡网页设计

    咖啡店案例效果图 (一)页面的布局 1. 最上方的header:右下角是四个小图标,像图层一样附加在当前的header部分上. 2. 超链接构成的导航栏,鼠标悬浮的时候字体颜色发生变化. 3. 主体分 ...

  8. QT 使用QDomDocument::setContent()读XML文件总是返回false

    代码: if(!doc.setContent(&file)){读取失败操作}发现总是返回false: 使用如下代码调试: if(!doc.setContent(&file,&s ...

  9. [OC] Block 是什么

    Block 是 带有自动变量的匿名函数.  emmmm 反正我看了也不懂,我们一点点用具体的例子分析一下block. 1. 我们现在要在一个文件中使用block(我们后面再提到两个界面传值的block ...

  10. win10开机无限自动修复篇

    转载请注明来源:https://www.cnblogs.com/Sherlock-L/p/15521381.html 关键词:win10.开机无限自动修复.nvlddmkm.sys 哈哈哈,其实这篇随 ...