从詹金斯动态向木偶清单发送值

时间:2020-02-11 23:17:48

标签: puppet hiera

我们使用p清单/ hiera在特定服务器上创建mysql docker实例。每次有新数据库请求时,我们都会在hiera中手动添加一个新条目,该条目由清单选择并创建docker实例。现在,我们需要通过詹金斯自动化该过程。有没有一种方法可以动态地将值发送到hiera或在代理系统中放置一些文件,并且puppet代理直接引用此文件来填充清单中引用的变量的值。我正在考虑以下选项。 1.从jenkins向层次结构添加一个新条目并提交文件(我们在git中维护文件),因此该文件由puppet agent使用。由于多次提交,这会带来轻微的失败风险。 2.在代理系统中有一些文件,puppet agent引用此文件来创建新的docker实例。 3.还有其他方法可以实现这一目标吗?

感谢您的想法。

1 个答案:

答案 0 :(得分:1)

我正在考虑以下选项。 1.将新条目添加到 来自jenkins的hiera并提交文件(我们在git中维护文件),因此 这个文件由人偶代理使用。这涉及轻微的风险 因多次提交而失败。

不考虑使用哪种组件使用Hiera访问数据的困惑,是的,这是一个可行的选择。可能也是最简单的,因为它构成了当前流程的直接自动化。

  1. 文件中有一些文件 代理系统,puppet agent引用此文件来创建新的docker 实例。

对我来说似乎可能,但是文件从何而来以及如何获取正确的内容?如果答案是“人为操纵”,那么您还没有真正解决任何问题。但是,如果答案是其他的话,那么这种组合就构成了极其糟糕的风格,并可能在某些时候咬住您。

  1. 还有其他方法可以实现这一目标吗?

很多。但是,在看起来最有吸引力的方法中,有可能添加一个Hiera back-end来从数据库而不是平面文件中获取数据。然后,Jenkins可以将数据存储在数据库中,而Puppet可以通过Hiera从数据库中读取所需级别的事务隔离和参照完整性。请注意,您不必切换,因为相同的Hiera配置可以从多个后端提取数据。某些DBMS已有Hiera后端,或者,如果您愿意,编写自己的后端也不会那么复杂。