[云原生专题-62]:Kubesphere云治理-DevOps-持续集成与pipeline自动上云工具Jenkins

网友投稿 271 2022-11-03

[云原生专题-62]:Kubesphere云治理-DevOps-持续集成与pipeline自动上云工具Jenkins

作者主页(​​文火冰糖的硅基工坊​​​):​​文火冰糖(王文兵)的博客_文火冰糖的硅基工坊

​目录​

​​第1章 Jenkins介绍​​

​​1.1 简介​​

​​1.2 什么是持续集成​​

​​1.3 什么是持续发布​​

​​1.4 用途:从手工到自动​​

​​1.5 特点​​

​​第2章 Jenkins window的安装​​

​​2.1 系统要求​​

​​2.2 安装java8​​

​​2.3 安装Java的web容器​​

​​2.4 下载并安装jenkins.msi​​

​​2.5 初始登录jenkins​​

​​2.6 设定新的用户名、密码和端口号​​

​​2.7 jenkins安装插件​​

​​2.8 重新运行jenkins​​

​​第3章 Jenkins的配置​​

​​3.1  全局安全配置​​

​​3.2  Jenkins的java和maven配置:指定其位置​​

​​第4章 Kubesphere对Jenkins的集成​​

​​第5章 Jenkins Pipeline​​

​​5.1 Pipeline与Jenkinsfile​​

​​5.2 为什么是Pipeline?​​

​​5.3 Pipeline的基本语法​​

​​第6章 pipeline的主要功能​​

​​6.1 代码管理​​

​​6.2  构建触发​​

​​6.3 构建build的环境​​

​​6.4 开始构建build​​

​​6.5  构建完成执行的操作​​

第1章 Jenkins介绍

1.1 简介

​​Jenkins中文文档_w3cschool​​

​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.

​​Jenkins安装_w3cschool​​

2.1 系统要求

最小推荐配置:

Java 8(JRE或JDK)256MB可用内存1GB +可用磁盘空间

推荐配置小团队:

Java 81GB +免费内存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应用程序。

设定新的用户名、密码和端口号

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模板和自动生成相应的代码。

作者主页(​​文火冰糖的硅基工坊​​​):​​文火冰糖(王文兵)的博客_文火冰糖的硅基工坊​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数字可寻址照明接口技术的应用及优势介绍
下一篇:USB type-c接口保护产品 方案图
相关文章

 发表评论

暂时没有评论,来抢沙发吧~