[云原生专题-62]:Kubesphere云治理-DevOps-持续集成与pipeline自动上云工具Jenkins
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[云原生专题-62]:Kubesphere云治理-DevOps-持续集成与pipeline自动上云工具Jenkins相关的知识,希望对你有一定的参考价值。
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/123021850
目录
3.2 Jenkins的java和maven配置:指定其位置
第1章 Jenkins介绍
1.1 简介
Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。前身是Hudson是一个可扩展的持续集成引擎。可用于自动化各种任务,如构建,测试和部署软件。
Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机器独立运行。
1.2 什么是持续集成
CI(Continuous integration,中文意思是持续集成)持续的软件开发。
持续集成强调开发人员提交了新的源代码代码之后,立刻进行构建、(单元)测试,根据测试结果,我们可以确定新源代码代码和原有源代码能否正确地集成在一起,是否可以集成到主流上,称为主流源代码的一部分。
借用网络图片对CI加以理解。
1.3 什么是持续发布
CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的源代码,生成新版本的目标代码(制品),以供生产运营使用。
1.4 用途:从手工到自动
(1)持续、自动地构建、测试、发布的软件项目,即持续集成与持续发布,如CruiseControl与DamageControl。
(2)监控一些定时执行的任务
手工操作:
自动化操作:
(1)输入:开发人员只负责提交代码
(2)中间:后续的生成流程有机器自动完成
(3)输出:最后生成出最终的成品
1.5 特点
- 开源免费;
- 跨平台,支持所有的平台;
- master/slave支持分布式的build;
- web形式的可视化的管理页面;
- 安装配置超级简单;
- tips及时快速的帮助;
- 已有的200多个插件
第2章 Jenkins window的安装
Jenkins支持各个平台上的搭建过程,包括Linux和windows.
2.1 系统要求
最小推荐配置:
- Java 8(JRE或JDK)
- 256MB可用内存
- 1GB +可用磁盘空间
推荐配置小团队:
- Java 8
- 1GB +免费内存
- 50GB +可用磁盘空间
实验,分期或生产?
根据您的预期用例,Jenkins的配置将会有很大的不同。本节专门针对初步使用和实验。
独立还是Servlet?
Jenkins可以使用自己的内置Web服务器(Jetty)在自己的进程中独立运行。
它也可以作为现有Web框架中的一个servlet运行,如Neginx、Tomcat或Glassfish应用程序服务器。
本节专门针对独立的安装和执行。
2.2 安装java8
参考如下的文章安装java8环境
2.3 安装Java的web容器
Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。
Jenkins download and deployment
(1)下载war文件
(2)把该文件放到自己系统的user目录中,如C:\\Users\\admin\\
(3)进入命令行模式,进入对应的文件目录,然后执行下面的命令:
java -jar Jenkins.war
获取初始安装密码
2.4 下载并安装jenkins.msi
Jenkins download and deployment
2.5 初始登录jenkins
Jenkins只提供基于Web的访问,无windows UI应用程序。
http://127.0.0.1:8080/
端口号取决于安装时候的设定。
2.6 设定新的用户名、密码和端口号
2.7 jenkins安装插件
2.8 重新运行jenkins
java -jar Jenkins.war
至此Jenkins安装成功.
第3章 Jenkins的配置
3.1 全局安全配置
3.2 Jenkins的java和maven配置:指定其位置
第4章 Kubesphere对Jenkins的集成
第5章 Jenkins Pipeline
5.1 Pipeline与Jenkinsfile
安装完成后,开始将Jenkins运行并创建Pipeline。
Jenkins Pipeline是一套插件,支持将连续输送Pipeline实施和整合到Jenkins。
Pipeline提供了一组可扩展的工具,用于通过PipelineDSL为代码创建简单到复杂的传送Pipeline。
Jenkins Pipeline是一套插件,支持将连续输送Pipeline实施和整合到Jenkins。
Pipeline提供了一组可扩展的工具,并用源代码对图像化Pipeline流程进行建模。
源代码存放在Jenkinsfile 文件中,该文件一个包含Jenkins Pipeline定义的文本文件,并被check in后源代码控制。也就是说,是通过编写pipeline完成pipeline流程的控制和功能的实现。
通常,此“Pipeline代码”将被写入 Jenkinsfile项目的源代码控制存储库.
5.2 为什么是Pipeline?
Jenkins从根本上讲是一种支持多种自动化模式的自动化引擎。
Pipeline在Jenkins上添加了一套强大的自动化工具,支持从简单的连续集成到全面的连续输送Pipeline的用例。通过建模一系列相关任务,用户可以利用Pipeline 的许多功能:
- 代码:Pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流程。
- 耐用:Pipeline可以在计划和计划外重新启动Jenkins管理时同时存在。
- Pausable:Pipeline可以选择停止并等待人工输入或批准,然后再继续Pipeline运行。
- 多功能:Pipeline支持复杂的现实世界连续交付要求,包括并行分叉/连接,循环和执行工作的能力。
- 可扩展:Pipeline插件支持其DSL的自定义扩展 以及与其他插件集成的多个选项。
虽然Jenkins一直允许基本形式的自由式工作联合起来执行顺序任务,Pipeline使这个概念成为Jenkins的最好的一个部分。
基于Jenkins的核心可扩展性,Pipeline也可以由Pipeline共享库用户和插件开发人员扩展。
下面的流程图是在Jenkins Pipeline中容易建模的一个连续发货方案的示例:
5.3 Pipeline的基本语法
agent:
stage:是定义整个Pipeline的概念上不同子集的一个步骤,例如:“Build”,“Test”和“Deploy”,许多插件用于可视化或呈现Jenkins Pipeline状态/进度。
Step:单一任务,从基础中告诉了Jenkins应该怎么做。例如,要执行shell命令,请make
使用以下sh
步骤:sh 'make',或junit "...."
sh:
执行给定的shell命令
第6章 pipeline的主要功能
6.1 代码管理
通过代码管理,Jenkins可以从代码仓库(snv、git)中下载源代码。
6.2 构建触发
构建什么时候触发一次build
(1)使用远程的脚本触发
(2)在一个项目完成构建后,触发此构建
(3)周期性的构建
(4)github的钩子构建(有代码提交时构建)
(5)通过poll SCM的方式构建
6.3 构建build的环境
6.4 开始构建build
实际上是执行各种命令、脚本
6.5 构建完成执行的操作
构建完成的输出称为成本artifacts。
构建完成后,可以把构建发布到某个制品仓库中。也可以发送邮寄通知,可以构建其他build等等。
至此,一个pipeline就完成了。
很显然,Jenkins的pipeline的重点是自动构建、自动测试、自动发布成品。
Jenkins自身但没有制作docker镜像,也没有自动发布docker镜像、更没有自动部署的功能,这需要基于Jenkins现有的框架进行扩展。
Kubesphere一方面对Jenkins的pipeline的链条进行了扩展,增加了后续的功能。
同时Kubesphere还使用了图形化的方式生成pipeline模板和自动生成相应的代码。
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/123021850
以上是关于[云原生专题-62]:Kubesphere云治理-DevOps-持续集成与pipeline自动上云工具Jenkins的主要内容,如果未能解决你的问题,请参考以下文章
[云原生专题-48]:Kubesphere云治理-操作-多租户概念概述
[云原生专题-46]:Kubesphere云治理-安装-在K8S的基础之上快速安装
[云原生专题-49]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 基本过程与步骤
[云原生专题-60]:Kubesphere云治理-DevOps-自动化开发与自动化上云部署流程概述
[云原生专题-47]:Kubesphere云治理-安装-在Linux平台上进行单机版安装
[云原生专题-53]:Kubesphere云治理-操作-通过Kubesphere应用商店一键部署微服务应用-消息中间件RabbitMQ的安装与部署