用配置作为代码设置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
dockerpull jenkins/jenkins:lts-jdk11brbrdocker run -p8080:8080-p50000: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_PATHvalue:"/path/to/somewhere"-key: AWS_REGIONvalue: us-west-2tool:jdk:installations:
-name: jdk11home:"/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
-
上一篇
在远程主机上指定git-upload-pack的完整路径。这允许列出通过SSH访问的存储库中的引用,以及SSH守护程序不使用用户配置的PATH的位置。
以此可见,这个错误
stderr: error: unknown switch v
除了打印Git的用法还有一条--upload-pack
可以直接执行命令。我们可以使用以下Payload来运行命令:
JenkinsGitclient插件命令执行漏洞(CVE-2019-10392)
0x00漏洞描述
-
下一篇
今天,我们专注于有效地使用Jenkins Pipeline环境变量。您将学习如何定义env变量,如何更新它们,以及如何在布尔表达式中正确使用它们。
主要内容
列出环境变量
读取环境变量
设置环境变量
将布尔值存储在环境变量中
sh在env环境变量中获取输出
JenkinsPipeline环境变量使用指南