CICD中一个巨头--jenkins

持续化集成,发布离不开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的更多相关文章
- 第四十二章 微服务CICD(4)- jenkins + gitlab + webhooks + publish-over-ssh(2)
上一节完成了"当git客户端push代码到gitlab后,jenkins会立即去gitlab拉取代码并构建". 目的:本节完成jenkins自动构建之后,自动的将jar包部署到应用 ...
- 在 Intellij 中设置集成 Jenkins 服务器连接
如何在 Intellij 中设置集成 Jenkins 服务器连接 在Intellij中可以很方便的设置Jenkins服务器,不用登录到浏览器中,在Intellij中即可浏览所有job,开发plugin ...
- Sql Server 中一个非常强大的日期格式化函数
Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0)-- 05 16 2006 10:57AMSelect CONV ...
- oracle 编译中一个关于clntsh 库的一个 帖子 ,收藏!
oracle 编译中一个关于clntsh 库的一个 帖子 ,收藏! ------------------------------------------------------------------ ...
- php中一个"异类"语法: $a && $b = $c;
php中一个"异类"语法: $a && $b = $c; $a = 1;$b = 2;$c = 3;$a && $b = $c;echo & ...
- oracle中一个字符串包含另一个字符串中的所有字符
oracle中一个字符串包含另一个字符串中的所有字符 --解决监理报告中所勾选的标段信息,与该用户所管理的标段字符串不匹配的问题. select * from a where instr(a,b)&g ...
- Spark小课堂Week7 从Spark中一个例子看面向对象设计
Spark小课堂Week7 从Spark中一个例子看面向对象设计 今天我们讨论了个问题,来设计一个Spark中的常用功能. 功能描述:数据源是一切处理的源头,这次要实现下加载数据源的方法load() ...
- Android中一个类实现的接口数不能超过七个
近期一段时间,在开发Android应用程序的过程中,发现Android中一个类实现的接口数超过七个的时候,常常会出现超过第7个之后的接口不能正常使用.
- Linux中一个文件10行内容,如何输出5-8内容到屏幕
题目是这样的,Linux中一个文件10行内容,如何输出5-8内容到屏幕首先我们模拟一下这样的环境: [root@localhost question]# pwd /root/question [roo ...
- [20180904]工作中一个错误.txt
[20180904]工作中一个错误.txt --//昨天看我提交一份修改建议,发现自己写的sql语句存在错误.--//链接:http://blog.itpub.net/267265/viewspace ...
随机推荐
- pictrue类的练习
这里遇到一个问题,因为导入的文件格式很大,所以内存占用特别高,就会在运行一段时间过后报错:内存不够 然后用了一个GC.collect():的方法,加在了timer控件里,让程序每隔1000ms换图时也 ...
- win7电脑休眠后只能按重启键解决办法
一.点击"开始"后选择控制面板 二.选择"电源选项" 三.点击"更改计划设置" 四.选择"更改高级电源设置" 五.点击& ...
- Linux,Lnmp配置Index of /索引页
其实很简单就是修改conf配置文件 进入域名对应的vhost修改conf文件: 第一种方法 cd /usr/local/nginx/vhost/ 在清楚当前域名所对用的conf文件可以试用 ll 列出 ...
- redis之五种基本数据类型
五种基本数据类型 redis存储任何类型的数据都是以key-value形式保存,并且所有的key都是字符串,所以讨论基础数据结构都是基于value的数据类型 常见的5种数据类型是:String.Lis ...
- Qt头文件引用其他类,主类头文件报错(1)invalid use of incomplete type 'class xx::yy' (2)forward declaration of 'class xx::yy'
其实这个错误很蠢,由于代码是从cpp文件直接copy过来的就没仔细看,但是他这个报错很有迷惑性,我们来看图: 就这行代码,从cpp文件中复制过来的: 本来目的呢就是提升这个变量的作用域,但是呢!!!在 ...
- python web自动化-文件上传-亲身实践
文件上传三种方式: (一)查看元素标签,如果是input,则可以参照文本框输入的形式进行文件上传 方法:和用户输入是一样的,使用send_keys 步骤:1.找到定位元素,2,输入文件路径 ele=d ...
- airtest截图后放在allure报告里面。
#需要导入的包 from airtest.aircv import * from airtest.aircv.utils import cv2_2_pil screen1 = G.DEVICE.sna ...
- Docker 安装 PHP+Nginx
安装Nginx docker pull nginx 安装PHP docker pull php:7.3.5-fpm 启动PHP-FPM docker run --name myphpfpm -v /d ...
- springboot aop本地缓存防止重复提交
实现原理: 自定义防止重复提交标记(@RepeatSubmit). 对需要防止重复提交的Congtroller里的mapping方法加上该注解. 新增Aspect切入点,为@RepeatSubmitA ...
- docker-swarm轻量集群
使用docker swarm搭建docker轻量集群服务 当前流行的k8s集群搭建无疑是很好的docker集群管理服务,但是对于像我这种仅自己学习的玩家有些过于重量,所以今天使用docker自带的do ...