持续化集成,发布离不开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. JAVA-GUI创作学校管理系统

    1.对于学校的管理系统,我们先做一个简单的一个需求分析,我们需要做学生信息管理,教师信息管理,课程的信息管理.我们要根据自己的需求进行数据库的编写. 简单的添加了几个 2.然后我们通过eclipse+ ...

  2. SAP 后台任务定时job

    定时任务的事务码 sm36:创建定时任务 sm37:查看定时任务 JDBG:后台任务debug,在对应的sm37中对应的job页面 t-code输入 创建定时任务SM36 名称可以随便起 一般都是按自 ...

  3. 对APP渗透测试之抓包

    一.APP渗透测试的原理 APP(手机软件),APP测试和web测试基本没有区别,一个网站存在SQL注入,用PC端浏览器去访问存在SQL注入漏洞,用手机浏览器去访问一样也存在SQL注入漏洞. 大部分漏 ...

  4. 获取select的选中的值

    var select = document.getElementById("sec")//获取元素 var idx = select.selectedIndex;//获取当前选中的 ...

  5. consul剔除某个服务

    curl --request PUT  http://ip:端口/v1/agent/service/deregister/服务对应的id地址

  6. 使用NibiruSDK 坑

    最近有项目要接NibiruSDK ,在使用时需要用他们提供的软件,进行项目签名,在这里包名前必须是 com.dream.*** ,否则会导致签名失败而且没有任何提示.用DreamClass打开apk, ...

  7. 题解[CF575E]Spectator_Riots

    题意 一个球场,可以看作 \(10^5\times10^5\) 的矩形,每个位置都是一个整点.一个位置 \((x,y)\) 位于球场内当且仅当 \(x\in[0,10^5]\and y\in[0,10 ...

  8. [iOS] 随手记录 IDFA 的一些相关内容

    IDFA  IDFA,广告标识符,类似于这一台设备的唯一性标识符,一般提供给第三方去做一些广告的关联. 但如果用户完全 重置系统,或者 "还原位置与隐私" 这个广告标示符会重新生成 ...

  9. 教你快速理解Linux虚拟化网络的全脉络,正确配置网络联通性。

    https://www.bilibili.com/video/BV1iy4y177f4?p=12 实用的干货快先码起来,说不定以后会用到哟

  10. [菜鸡随笔-2]用mv代替rm安全地进行删除操作的小技巧

    牢骚和背景介绍: rm -rf /*的梗 相信大家都听过笑过,我不止听过笑过,还不小心试过(不要熬夜写东西!).为此丢了我一周的心血,和40块钱(买u盘跑网吧下载引导文件).所幸,这只是在自己的机器上 ...