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
=======================================================================
下一章我们将进行任务部署----模拟代码上线的过程----
最新文章
- .NET跨平台之旅:在生产环境中上线第一个运行于Linux上的ASP.NET Core站点
- POJ2425 A Chess Game[博弈论 SG函数]
- .NET 学习书籍推荐
- net之工作流工程展示及代码分享(记录)
- 15、安全工程师要阅读的书籍 - IT软件人员书籍系列文章
- [MySQL]load data local infile向MySQL数据库中导入数据时,无法导入和字段不分离问题。
- 闭包 Clousure
- Android 自定义View,仿微信视频播放按钮
- Java操作hbase总结
- java—— 笔记链接
- SQL SERVER 分页方法
- 图片压缩上传 Android
- Android应用开发基础篇(15)-----URL(获取指定网址里的图片)
- 企业QQ客服的添加
- django插入数据库错误:mysql的1267错误
- 【网摘】C#.NET 在 MVC 中动态绑定下拉菜单的方法
- CMDB服务器管理系统【s5day88】:采集资产-文件配置(一)
- gdb core 调试多线程
- Node入门教程(6)第五章:node 模块化(上)模块化演进
- bootstrap手风琴折叠
热门文章
- .Net简单使用了一下Redis
- Python控制台输出字体颜色及背景设置
- N63050 第十二周运维作业 ansible常用模块介绍未完成
- mybatis_pagehelper_selectOne的SQL语句被莫名的增加分页相关设置,暂定解决办法
- Appium-TouchAction类与MultiAction类(控件元素的滑动、拖动,九宫格解锁,手势操作等)
- uniapp - 设置代理
- JavaSE——==与.equal()方法
- JAVA诞生历史【转载】
- mybatis读取blob类型
- myod od -tx -tc功能的c语言实现1210