我们使用puppet manifest/hiera在特定服务器中创建mysql docker实例。每次有对新数据库的请求时,我们都会在 hiera 中手动添加一个新条目,该条目由清单选择并创建 docker 实例。现在,我们需要通过 jenkins 自动化这个过程。有没有办法我可以动态地将值发送到 hiera 或将一些文件放在代理系统中,而 puppet 代理直接引用此文件来填写清单中引用的变量的值。我正在考虑以下选项。 1. 从 jenkins 向 hiera 添加一个新条目并提交文件(我们在 git 中维护文件(,因此该文件由 puppet agent 使用。这涉及由于多次提交而导致的轻微失败风险。 2.在代理系统中有一些文件,puppet代理引用该文件来创建新的docker实例。 3. 还有其他方法可以实现这一目标吗?
我很欣赏你的想法。
我正在考虑以下选项。1. 添加一个新条目 来自 jenkins 的 hiera 并提交文件(我们在 git 中维护文件(,所以 此文件由傀儡代理使用。这涉及轻微的风险 由于多次提交而失败。
撇开关于哪个组件使用 Hiera 访问数据的困惑,是的,这是一个可行的选择。 可能也是最简单的,因为它构成了您当前流程的直接自动化。
- 有一些文件放在 代理系统,傀儡代理引用此文件创建新的 docker 实例。
对我来说似乎是可能的,但是文件来自哪里,它如何获得正确的内容? 如果答案是"木偶处理那个",那么你还没有真正解决这个问题。 但是,如果答案是其他任何东西,那么这种组合构成了极其糟糕的风格,并且可能会在某个时候咬你。
- 还有其他方法可以实现这一点吗?
很多。 但是在那些看起来最吸引人的中,有可能添加一个 Hiera 后端,该后端从数据库而不是平面文件中获取数据。 然后 Jenkins 可以将数据存储在数据库中,Puppet 可以通过 Hiera 从那里读取它,具有您喜欢的任何级别的事务隔离和引用完整性。 请注意,您不必切换到它,因为相同的 Hiera 配置可以从多个后端提取数据。 一些 DBMS 有现有的 Hiera 后端,或者如果您愿意,编写自己的后端不会那么复杂。