2016-01-29 106 views
0

我在伪满新。我有一个傀儡基础设施。 我从木偶了解参数类

puppetforge“example42/lighttpd的”

我能没有问题的傀儡控制的节点部署此类安装。 我现在的问题是,.how如何使用这个类中的参数?我不明白在哪里我可以激活的parameters.i想要部署lighttpd自定义index.html和不同的日志文件path.i希望你能给我一个后果:)

在文件params.pp

This class is not intended to be used directly. 
It may be imported or inherited by other classes 

,但我怎么能导入这个?

回答

2

首先,获得连胜开始与傀儡,你应该看一看的问题(即README,README.md等)模块的文档。接下来,了解params模式。 puppet模块中的params类通常是一个包含NO资源的类,用于保存模块的默认数据(不是从外部来源提供的数据,如hiera)。大多数时候,你会看到这样的事情:

inherits lighttpd::param

在init,或模块在另一个清单文件。这是因为它继承了params类的值。

希望这有助于至少一点点。

+0

所以,@Benedikt,“我怎样才能导入[]这个问题的实际答案?”你能*像任何其他类一样使用params类。然而,它不适合你的(直接)使用,而且它对你来说没有什么用处。我倾向于怀疑你真正想知道的是如何操作'lighttpd'类的参数,但如果是这样的话,那么在这一点上,作为一个单独的问题会更好。 –

1

总之,不(通过声明它)直接使用params.pp。这个类是PARAMS设计模式的一部分,该规定对我们的参数的默认值可以被放置在其中,然后可以通过这需要我们在params.pp中定义的接入参数,所有的类继承params.pp木偶类

我认为最好的开始是每个Puppet模块都有的init.pp类。它可以在您从Puppet Forge下载的Puppet模块的manifest目录中找到。

/Users/bjusufbe/.puppetlabs/etc/code/modules/lighttpd/manifests 
Bakirs-MacBook-Pro:manifests bjusufbe$ ls -la 
total 56 
drwxr-xr-x 6 bjusufbe staff 204 Oct 23 19:27 . 
drwxr-xr-x 10 bjusufbe staff 340 Oct 23 19:27 .. 
-rw-r--r-- 1 bjusufbe staff 1705 Oct 23 19:26 dotconf.pp 
-rw-r--r-- 1 bjusufbe staff 15763 Oct 23 19:27 init.pp 
-rw-r--r-- 1 bjusufbe staff 2633 Jul 17 2013 params.pp 
-rw-r--r-- 1 bjusufbe staff 560 Apr 10 2013 spec.pp 

如果你打开init.pp,你会看到下面的类定义:

class lighttpd (
    $use_ssl    = params_lookup('use_ssl'), 
    $my_class   = params_lookup('my_class'), 
    $source    = params_lookup('source'), 
    $source_dir   = params_lookup('source_dir'), 
    ... 

所有参数均采用params_lookup自定义函数(不是木偶提供但从example42命名空间中的其他模块的一部分)。您可以在以下链接查看详细信息如何使用此功能:How to use params_lookup章节:PARAMS查找订单

但是,为了使您更容易,您可以在site.pp中使用以下语法声明此类(如果使用木偶主/代理场景)或任何*。在无主场景页文件,它可以简单地通过调用应用:

puppet apply <name_of_pp_file>.pp 

简单的声明是这样的:

class { 'lighttpd': 
    <anyparameterfromthisclassdefinition> => <value> 
} 

例子:

class { 'lighttpd': 
    use_ssl => true, 
} 

如果你不希望传递类声明中的任何参数,那么将使用通过自定义函数params_lookup针对此类中的每个参数计算的默认值。在这种情况下,你可以简单地做到这一点:

include lighttpd 

希望这给你足够的开始。干杯!