Jenkins 配置文件管理插件 Config File Provider
Posted catoop
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins 配置文件管理插件 Config File Provider相关的知识,希望对你有一定的参考价值。
背景
我对Jenkins的使用,很早就脱离了创建普通job然后进行各种参数配置这样的使用方式,一直以来都在使用 Pipeline 多分支流水线基于 Groovy 脚本的方式来进行构建。
程序化即是可通用化,将多个需要构建的工程统一标准进行抽象,形成统一的构建模型,然后编写 groovy 脚本形成 Jenkinsfile 来构建 job,最终使得新增 job 更加简单、灵活。
场景
在构建项目的时候,可能有多种不同的构建模型(有不同,但是一定不会太多,因为你公司的项目构建方式无外乎几种常用的,肯定不会出现每个工程都完全不一样的构建方式)。这个时候我们需要可视化统一管理这些配置文件,我主要包括:maven的settings.xml文件、构建核心Jenkinsfile文件、Dockerfile文件。
一开始我是把这些文件放在服务器上指定位置进行管理的,这样偶尔出现要调整或者对脚本和配置升级的时候,我就需要登录服务器,然后 vim 编写和修改。
还有就是我这些脚本里难免会预置一些配置参数和依赖的相关系统环境IP地址等信息,在不同环境直接迁移部署的时候总要进行一些调整,所以我不想每次登陆 shell 去操作(按惯例每次总会出现一些遗漏点而且在服务器上修改肯定没有可视化管理更快捷方便)。
于是发现了本文标题所述的插件 Config File Provider
,插件官方地址为 https://plugins.jenkins.io/config-file-provider/
被这个插件管理的文件,界面截图示范如下图:
而我对它使用的具体步骤如下:
1、通过它管理 maven 配置文件、Dockerfile 文件、Jenkinsfile文件。
2、Jenkinsfile 是在创建 job 的时候设定的。
3、在 Jenkinsfile 中,进行 Dockerfile 构建镜像的时候,使用 docker build -t hello:v1.0.0 -f $DOCKERFILE_PATH
动态传入被这个插件管理的 Dockerfile 文件。
通过以上所述场景,我把所有常用的配置文件都通过这个插件来可视化管理,然后在 Jenkinsfile 执行一些列命令的时候都可以获取被管理的文件进行执行,它可以管理任何你需要的配置类文件。
获取文件的脚本
Jenkins Pipelines 脚本获取被这个插件所管理的文件的代码示例如下:
configFileProvider([configFile(fileId: 'Dockerfile', variable: 'DOCKERFILE_PATH')]) {
sh 'docker build -t hello:v1.0.0 -f $DOCKERFILE_PATH'
}
其中 fileId 指插件管理的配置文件的文件ID,variable 定义一个变量,插件会将指定文件的路径赋值给这个变量。在脚本使用的时候,你可以通过这个文件的路径去读取这个文件内容,或者直接使用这个路径指向的文件。
(END)
以上是关于Jenkins 配置文件管理插件 Config File Provider的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins+Gradle+Docker打docker镜像包上传至s3