根据一台机器上安装的类选择puppet模板

时间:2012-08-31 13:41:13

标签: class templates tomcat configuration puppet

我们正在使用Puppet将Tomcat7资源配置到web档案的context.xml文件中。

我们有三个档案,每个档案在context.xml中需要一组不同的资源条目。只要我们每个tomcat实例都有一个工件,就可以使用模板并通过工件填充正确的模板。

但是我们也有这样的场景,即所有三个工件都安装在一个tomcat实例中(用于测试阶段)。在这种情况下,我们需要同时为这三个工件提供所有资源条目。

我想到了两个解决方案,两个都不能让我满意:

  1. 停止使用模板并使用augeas镜头编辑文件。 Con:context.xml是XML,augeas的使用容易出错并且很难读取。

  2. 从工件的类中删除模板复制部件,因子将进入子工具,例如artifact :: supply-context(为单个工件提供正确的配置)。还提供了一个类all_artifacts :: supply-context(为所有上下文提供配置) Con:类的使用不再透明。一件工件:“包括artifactA,artifactA :: supply-context”。所有工件:“包括artifactA,artifactB,artifactC,all_artifacts :: supply-context。

  3. 有没有人有更好的解决方案或建议?

1 个答案:

答案 0 :(得分:2)

在看到这个问题后,我想到的第一件事是“concat”模块[1]。您可以将它与模板组合,然后将相关部分连接在一起就是一个订单。除此之外,您可以编写自定义文件汇编功能。

  1. https://github.com/ripienaar/puppet-concat