用配置作为代码设置 Jenkins 实例(使用 Yaml 配置)
本文介绍了如何使用 yaml 通过 Configuration as Code 插件设置 Jenkins 实例
每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?3分钟?学习?何乐而不为?,希望?大家?点赞?,加?关注?,你的?支持?是我?最大?的?动力?。
有时我们需要可见性,并且我们想要跟踪 Jenkins 实例是如何配置和参数化的。
从 Jenkins 用户界面做出这些更改是非常简单的,但是另一方面,我们并不跟踪历史更改,我们需要从一个菜单项跳转到另一个菜单项,以获得整个设置的大图。
根据 Jenkins Configuration 的代码插件文档:
Configuration as Code 插件是基于人类可读的声明性配置文件来配置 Jenkins 的一种固执己见的方法。编写这样一个文件应该是可行的,而不需要成为一个 Jenkins 专家,只需要将一个用于在 web UI 中执行的配置过程转换成代码即可。
在另一篇文章中,我们谈到了使用 Jenkinsfile 来跟踪所有管道变化的重要性。
现在,我们仍然可以使用相同的方法来使用 Configuration as Code 设置 Jenkins 实例,这意味着我们定义和声明所有实例参数和配置,并跟踪对 CI/CD 工具所做的任何更改。
让我们看看如何在实践中做到这一点。
用例
既然我们想要一个非常简单的 Jenkins 设置,让我们:
- 重新安装 Jenkins 的设备
- 定义一些环境变量
- 定义 JDK 工具安装
然后我们用 Jenkins 文件建立一个 Jenkins 管道:
- 打印一些环境变量
- 运行java --version 查看Java11版本
建立 Jenkins 实例
为了简化,让我们用 Docker 启动 Jenkins:
Shell
docker pull jenkins/jenkins:lts-jdk11brbrdocker run -p 8080:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:lts-jdk11
现在我们将使用 Configuration 作为 Code 插件ーー以及另一个。
点击 Manage Jenkins-> Manage Plugins-> 可用并安装以下插件:
- Configuration as Code
- AdoptOpenJDK installer
创建配置文件
现在我们需要为 Jenkins 实例声明配置,并定义管道的工作方式。
您可以在公共存储库中创建它们,就像我在这里所做的那样。
将您的配置创建为代码 yaml 文件(Jenkins Configs)
这将在 Jenkins 上定义两个新的全局环境变量,并建立一个 JDK11工具。
YAML
jenkins:
systemMessage: "Jenkins instance using Configuration as Code."
globalNodeProperties:
- envVars:
env:
- key: SOME_ENV_PATH
创建您的 Jenkins 文件(管道定义)
它将创建两个阶段:
- 打印我们定义的变量
- 运行java version 命令打印其版本
Groovy
jenkins:
systemMessage: "Jenkins instance using Configuration as Code."
globalNodeProperties:
- envVars:
env:
- key: SOME_ENV_PATH
value: "/path/to/somewhere"
- key: AWS_REGION
value: us-west-2
tool:
jdk:
installations:
- name: jdk11
home: "/jdk"
properties:
- installSource:
installers:
- adoptOpenJdkInstaller:
id: "jdk-11.0.14+9"
使用配置作为代码插件
更新您的 Jenkins 配置
每当您想要更新 yaml 文件中描述的配置时:
- 更新你的yaml 修改后的文件
- 去Manager Jenkins -> Configuration as Code 提供路径/URL 到您的yaml 文件中(在我的示例中,这是指向文件的 GitHub 原始 URL)点击应用新配置
然后单击“查看配置”查看最新的配置。
运行管道
创建指向 Jenkins 文件的 Jenkins 管道作业类型(示例如下) :
单击 Build 时,您将在控制台日志中看到相应的输出:
结论
使用配置作为代码插件肯定有助于跟踪对您的詹金斯配置所做的任何更改,并且使您的团队/公司的每个人都可见。
您仍然可以设置更复杂的东西(您可以在这里看到一些演示) ,并且还可以自动更新您的 Jenkins 配置(具有讽刺意味的是,使用 Jenkins 管道)。
欢迎在我的 GitHub 回购中查看这个练习所使用的文件。
https://github.com/rodrigocprates/jenkins-configuration-as-code