持续化集成,发布离不开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. ant design vue datePicker 日期时间范围设置默认为当天0点-23点59

    <template> <a-card :bordered="false"> <a-range-picker show-time :default-va ...

  2. Python语言基础实验(第四周)

    Python语言基础实验(第四周) 一.实验目的 1.了解并掌握python中序列及序列的常用操作. 2.根据实际需要运用合适的序列类型来完成实验. 二.实验环境 软件版本:Python 3.10 6 ...

  3. Mac系统中安装Nginx

    ​ 一.前言 本文介绍一下,如何在Mac系统中安装Nginx,把详细过程记录下来,方便以后查看,也方便大家学习. 二.正文 1.安装 Homebrew homebrew是什么?它是Mac中的一款软件包 ...

  4. 别再写一堆的 for 循环了!Java 8 中的 Stream 轻松遍历树形结构,是真的牛逼

    实体类:Menu.java /** * Menu * * @author lcry */ @Data @Builder public class Menu { /** * id */ public I ...

  5. maven项目pom.xml报未找到指定路径文件

    解决方法: 错误环境:Tomcat7 + Eclipse + Maven + Spring + SpringMvc + Mybatis 错误描述: 错误解决步骤: 1.找到eclipse的projec ...

  6. C语言中局部变量和全局变量关于释放

    1.全局都属于静态,局部区分静态非静态,局部静态和全局的区别在于可见范围,局部能使用外部看不见的意思,本质相同的. 2.如果是全局变量或局部静态变量,编译器会为其分配一个位于静态存储区的地址.这个地址 ...

  7. java-javaSE-泛型和反射

    泛型 什么是泛型 泛型,即"参数化类型".顾名思义,就是将类型参数化,然后在使用/调用时传入具体的类型(类型实参). 为什么使用泛型 泛型提高程序操作的可读性和安全性. 例如集合类 ...

  8. PhpSpreadsheet导出科学记数转成字符串

    $logistic_code."\t"   加上\t即可转成字符串

  9. vmhost永久免费主机搭建wordpress

    vmhost主机试用+worpress搭建 点击vmhost进入vmhost官网,vmhost提供了永久免费的主机,还附带一个三级域名,并且支自定义子域名,免费托管5G的网页空间,网页支持php语言, ...

  10. springboot+mybatis实现增删改查

    开发工具IDEA 一.创建springboot项目(可以百度或者点击查看) 二.添加依赖pom.xml 1 <?xml version="1.0" encoding=&quo ...