如果你经常使用 Jenkins Pipeline 一定会遇到多个不同流水线中有大量重复代码的情况,很多时候为了方便我们都是直接复制粘贴到不同的管道中去的,但是长期下去这些代码的维护就会越来越麻烦。为了解决这个问题,Jenkins 中提供了共享库的概念来解决重复代码的问题,我们只需要将公共部分提取出来,然后就可以在所有的 Pipeline 中引用这些共享库下面的代码了。
[阅读全文]在 Kubernetes 上部署 Spinnaker
基于 Jenkins 的 DevOps 流水线实践
全面掌握基于 Jenkins 的流水线最佳实践方式
使用 Configuration-As-Code 运行 Jenkins
今天了解到一个名为Configuration as Code (JcasC)
的插件可以来创建Jenkins
,这个插件允许你用 YAML 文件来定义 Jenkins 配置。一般我们在使用 Jenkins 的时候多少知道我们需要哪些插件或者其他配置来配合我们的 CI/CD 工作,使用 JcasC 插件,我们就可以将这些信息配置在可读性更高的 YAML 文件中。在本文中,我们会为大家演示如何使用Configuration as Code
插件来创建 Jenkins,然后使用 Git、Maven 等工具来编写一个声明式的 Pipeline 去构建一个 Java 应用,另外还会展示如何使用Vault
来管理一些私密数据。
Groovy 简明教程
最近一直有很多同学提到不会写 Jenkins Pipeline 脚本,我都是直接摔一个 Jenkins 官方文档给他们,但是当我自己仔细去查看资料的时候发现并非如此简单,无论是声明式还是脚本式的 Pipeline 都依赖了 Groovy 脚本,所以如果要很好的掌握 Pipeline 脚本的用法,我们非常有必要去了解下 Groovy 语言。
[阅读全文]基于 Jenkins、Gitlab、Harbor、Helm 和 Kubernetes 的 CI/CD(二)
上节课我们完成了最基本的流水线流程,接下来的工作就是来实现之前的具体 Pipeline 脚本了。
[阅读全文]基于 Jenkins、Gitlab、Harbor、Helm 和 Kubernetes 的 CI/CD(一)
上节课和大家介绍了Gitlab CI
结合Kubernetes
进行 CI/CD 的完整过程。这节课结合前面所学的知识点给大家介绍一个完整的示例:使用 Jenkins + Gitlab + Harbor + Helm + Kubernetes 来实现一个完整的 CI/CD 流水线作业。
其实前面的课程中我们就已经学习了 Jenkins Pipeline 与 Kubernetes 的完美结合,我们利用 Kubernetes 来动态运行 Jenkins 的 Slave 节点,可以和好的来解决传统的 Jenkins Slave 浪费大量资源的缺点。之前的示例中我们是将项目放置在 Github 仓库上的,将 Docker 镜像推送到了 Docker Hub,这节课我们来结合我们前面学习的知识点来综合运用下,使用 Jenkins、Gitlab、Harbor、Helm、Kubernetes 来实现一个完整的持续集成和持续部署的流水线作业。
[阅读全文]Jenkins Blue Ocean 的使用
基于 Jenkins 的 CI/CD(三)
上节课我们讲解了使用Jenkins Pipeline
来自动化部署一个Kubernetes
应用的方法,在实际的项目中,往往一个代码仓库都会有很多分支的,比如开发、测试、线上这些分支都是分开的,一般情况下开发或者测试的分支我们希望提交代码后就直接进行CI/CD
操作,而线上的话最好增加一个人工干预的步骤,这就需要Jenkins
对代码仓库有多分支的支持,当然这个特性是被Jenkins
支持的。
Jenkins Pipeline 部署 Kubernetes 应用(二)
基于 Jenkins 的 CI/CD
上节课我们实现了在Kubernetes
环境中动态生成Jenkins Slave
的方法,这节课我们来给大家讲解下如何在 Jenkins 中来部署一个 Kubernetes 应用。
基于 kubernetes 的动态 jenkins slave
基于 Jenkins 的 CI/CD(一)
前面的课程中我们学习了持久化数据存储在Kubernetes
中的使用方法,其实接下来按照我们的课程进度来说应该是讲解服务发现这一部分的内容的,但是最近有很多同学要求我先讲解下 CI/CD 这块的内容,所以我们先把这块内容提前来讲解了。提到基于Kubernete
的CI/CD
,可以使用的工具有很多,比如Jenkins
、Gitlab CI
已经新兴的drone
之类的,我们这里会使用大家最为熟悉的Jenkins
来做CI/CD
的工具。