持续化集成,发布离不开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. Nginx基础篇(一)

    (一)介绍 Nginx 是开源.高性能.高可靠的 Web 和反向代理服务器,也可以作为邮件代理服务器.而且支持热部署,即几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能 ...

  2. css - content-visibility

    css - content-visibility content-visibility:实现可见网页只加载可见区域内容 介绍 content-visibility是一个css属性,它控制一个元素是否呈 ...

  3. cenots7 rpm 包升级ssh

    rpm下载地址 也可以自行官网下载 链接: https://pan.baidu.com/s/1S945MehpmZbIriKK6l7Sfw 提取码: y5ua centos7rpm包升级ssh 逻辑思 ...

  4. 初涉gulp

    //文件结构 gulpfile.js     var gulp = require('gulp'); var sass = require('gulp-sass'); //编译scss var cle ...

  5. CSDN上书签迁移

    title: CSDN上书签迁移 date: 2020-11-01 16:34:30 img: /photos/2020.6.03_15/2020_06_11_cover.jpg summary: C ...

  6. kafka删除topic清空数据

    一般情况下,是不会删除数据的.到达一定时间后,kafka会自动删除.如果一定要删除可以删除topic在重建topic了 No. 1: 如果需要被删除topic 此时正在被程序 produce和cons ...

  7. 反射 1 加载指定的DLL

    我们通常 都是用反射来操作指定的程序集(dll,exe). 需要引用 System.Reflection 有三种加载方式 Assembly assembly = Assembly.Load(" ...

  8. 嵌入式Linux应用开发

    3-4 Makefile常用的函数 i.  $(foreach var,list,text) 简单地说,就是 for each var in list, change it to text. 对lis ...

  9. 【运维】通过gotty实现网页代理访问服务器及K8S容器操作实践

    Gotty 是Golang编写的可以方便的共享系统终端为web应用,是一个灵活强大的通过web访问终端的工具.本文将主要通过搭建Gotty实现对K8S容器的访问操作,开发如果想要正常的进行容器访问以及 ...

  10. Django ImageField 内置属性height,width和size

    ImageField实例使用height,width和size属性后,若后继操作需重新打开实例,其他模块方法才能调用实例,使用open()方法:>>> from PIL import ...