# 前言

以往 Jenkins 实践当中,配置了共享库的流水线方案,通过将核心公共逻辑抽离成膜版,项目个性化配置信息放到引导文件中的方式进行推进。

这种方案没有什么毛病,对于运维的维护工作也是比较友好的,只是后来我们打算再在 Jenkins 上层做一下平台化封装的时候,发现还是存在一些问题,并且有一些难度的。

最近我了解学习到了一个与 MySQL Database 插件结合的思路,能够比较好解决这种问题,那么接下来话不多说,直接进入正题,让我们来认识一下这个插件。

# 安装插件

安装如下两个插件:

因为 MySQL 的插件会需要依赖一个 database 的驱动,因此也要安装这个插件。

# 配置插件

系统管理系统设置

配置信息都比较常规,也就不一一介绍了,只需要在数据库当中创建一个 jenkins 库,然后按如下截图配置即可:

select version();

如果点击 Test Connection 之后报如下错误:

则需要对 JDK 进行一点配置的调整:

然后重启 Jenkins,再次进行配置测试,应该就能通过了。

# 使用

配置完毕之后,我们就可以通过一个固定语句,在流水线当中,与数据库进行交互了。

比如我的项目需要的配置信息有如下内容:

那么就创建一个项目信息的表:

然后存进去一条数据:

此时我们把 job_name 字段作为该表的唯一标识,那么创建一个项目,就可以通过如下配置拿到对应的数据:

get_mysql_msg()

同理,构建过程中,如果有需要往库里写数据的时候,比如要将当次构建的一些信息存库的话,仍然可以调用如下方式进行:

# 思路扩展

当我们已经捋顺了上边的思路之后,就可以把思路再打开一下。

一个项目的元数据信息,通过工单平台,由研发人员提交上来,经过审核之后,这份数据就会存在 MySQL 当中,然后 Jenkins 平台只需要创建一个 job_name 对应的项目,直接套入到这个模板即可,而不再需要关心维护其他数据了。