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

Posted 文火冰糖的硅基工坊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[云原生专题-62]:Kubesphere云治理-DevOps-持续集成与pipeline自动上云工具Jenkins相关的知识,希望对你有一定的参考价值。

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

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/123021850  


目录

第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 8
  • 1GB +免费内存
  • 50GB +可用磁盘空间

实验,分期或生产?

根据您的预期用例,Jenkins的配置将会有很大的不同。本节专门针对初步使用和实验。

独立还是Servlet?

Jenkins可以使用自己的内置Web服务器(Jetty)在自己的进程中独立运行。

它也可以作为现有Web框架中的一个servlet运行,如Neginx、Tomcat或Glassfish应用程序服务器。

本节专门针对独立的安装和执行。

2.2 安装java8

参考如下的文章安装java8环境

[云原生专题-57]:Kubesphere云治理-操作-RuoYi Cloud项目-Windows单机版安装_文火冰糖(王文兵)的博客-CSDN博客作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:目录第1步:环境准备1.1 下载安装64 bit JDK 1.8+1.2 Node.js的安装1.3IDEA集成开发环境的下载与安装1.4安装windows git环境第2步:RuoYi Cloud下载第3步:下载nacos安装包3.1nacos的安装3.2 standalone的方式启动nacos3.3nacos的访问测试第4步:创建本地MySQ...https://blog.csdn.net/HiWangWenBing/article/details/122971276

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的集成

https://blog.csdn.net/HiWangWenBing/article/details/123015489https://blog.csdn.net/HiWangWenBing/article/details/123015489

第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的安装与部署