2

我编写了 puppet 清单,并使用 puppet 来部署我的系统。我现在正在重构清单以使其可维护。

子系统之一是带有 web 应用程序的 tomcat。我有大约 10 个网络应用程序。它们中的每一个都有几乎相同的部署过程。现在我使用类。10 个文件 - 几乎相同。

当我尝试使用参数化类时,puppet 让我只实例化一次。然后我尝试创建从 webapp 类继承的“空”类。它不能很好地工作,因为 puppet 抱怨参数没有传递给父类。

我没有看到任何可以抽象代码的方法。怎么做?

我想实现:

   node {
     class {"webapp::first": param1 = one}
     class {"webapp::second": param1 = two}   
   }

其中第一个和第二个是使用相同配方的应用程序。

我知道有定义,但配方相当大,即使有可能我发现类更具可读性。

4

2 回答 2

4

您可以在类中使用参数,但定义更多的是您想要的。引用官方文档

类和定义类型的创建方式相似,但它们的使用方式却大不相同。

定义类型用于定义在给定主机上具有多个实例的可重用对象,因此 > 它们不能包含任何只有一个实例的资源。例如,多次使用 > 相同的定义不能创建相同的文件。

http://docs.puppetlabs.com/guides/language_guide.html#resource-collections

于 2011-09-28T08:34:56.860 回答
0

尝试使用用户定义的类型类本质上是单例的

于 2013-04-17T15:44:28.437 回答