Git 为多个环境存储Jenkins配置

Git 为多个环境存储Jenkins配置,git,jenkins,integration-testing,Git,Jenkins,Integration Testing,我的公司使用Jenkins作为集成测试执行器 我们的生产和登台环境有多个实例。不同的环境需要非常相似的Jenkins配置,但在定期执行、通知、作业启用等方面略有不同 目前,我们将Jenkins配置XML存储在Git中,并在重新部署实例时根据环境进行修改 然而,这意味着在不重新部署实例的情况下更新实例的配置是非常困难的 是否有人喜欢在不同实例之间共享Jenkins配置,同时对每个实例应用小修改的机制?我最近遇到了,它基本上扩展了,允许在源代码管理中维护作业配置,并通过Gradle将它们应用于Jen

我的公司使用Jenkins作为集成测试执行器

我们的生产和登台环境有多个实例。不同的环境需要非常相似的Jenkins配置,但在定期执行、通知、作业启用等方面略有不同

目前,我们将Jenkins配置XML存储在Git中,并在重新部署实例时根据环境进行修改

然而,这意味着在不重新部署实例的情况下更新实例的配置是非常困难的


是否有人喜欢在不同实例之间共享Jenkins配置,同时对每个实例应用小修改的机制?

我最近遇到了,它基本上扩展了,允许在源代码管理中维护作业配置,并通过Gradle将它们应用于Jenkins服务器。通过这种方式,您可以轻松地将相同的配置部署到不同的服务器,只需使用DSL进行轻微修改,具体取决于Jenkins服务器URL等

或者,您也可以使用新的实现类似的功能。

一种可能性(我自己没有测试过)是通过(ruby)这样的包装器使用


这将允许使用远程Jenkins实例,只修改需要少量更改的参数。

您可以创建一个多环境配置文件,其中包含以下行:

hostA:settings.xml:key_1:value_1A
hostB:settings.xml:key_1:value_1B
hostC:settings.xml:key_1:value_1C
hostD:settings.xml:key_1:value_1D

hostA:settings.xml:key_2:value_2A
hostB:settings.xml:key_2:value_2B
hostC:settings.xml:key_2:value_2C
hostD:settings.xml:key_2:value_2D
(当不需要:用于键/值时,上述布局有效)

在部署脚本中,您调用一个post_configure脚本,该脚本将选择正确的主机行并替换xml中的键(键为
)。
post_配置的代码可以用不同的语言编写

示例
当所有目标都是Linux,并且每个值的开始和结束标记都是一行时,我会使用bash和类似的代码

grep $(hostname) multi.cfg | while IFS=: read host file key value; do
   sed -i 's/'${key}'/'${value}'/g' ${file}
done

我认为这是一种比为不同系统生成不同分发版更好的方法。

您的奖金宽限期将在10小时后到期。你能分配赏金吗,或者说在回答中缺少什么?