[英]puppet understanding parameters class
我是木偶新手。 我有一个伪造的基本基础设施。 我从安装
puppetforge“ example42 / lighttpd”
我能够将此类毫无问题地部署到人偶控制的节点。 我现在的问题是..如何在此类中使用参数? 我不知道我可以在哪里激活参数。我想使用自定义的index.html和不同的日志文件路径来部署lighttpd。我希望你能给我一个机会:)
在文件params.pp中
This class is not intended to be used directly.
It may be imported or inherited by other classes
但是我怎么导入呢?
首先,要开始使用puppet,您应该查看所涉及模块的文档(即README,README.md等)。 接下来,了解params模式。 人偶模块中的params
类通常是不包含任何资源的类,用于保存模块的默认数据(数据不是从外部资源(例如hiera)提供的)。 大多数情况下,您会看到类似以下内容的信息:
inherits lighttpd::param
在init或模块中的另一个清单文件中。 那是因为它继承了params类的值。
希望这至少可以有所帮助。
简而言之,不要直接使用params.pp(通过声明)。 此类是params设计模式的一部分,该模式指出可以将参数的默认值放在params.pp中。puppet类可以由所有需要访问在params.pp中定义的参数的类继承。
我认为最好的起点是每个Puppet模块都有的init.pp类。 它可以在从Puppet Forge下载的Puppet模块的清单目录中找到。
/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自定义函数(Puppet不提供,但是example42命名空间中其他模块的一部分)。 您可以在以下链接上查看有关如何使用此功能的详细信息:本章的“ 如何使用params_lookup ”:PARAMS LOOKUP ORDER
但是,为了使您更轻松,可以在site.pp(如果使用Puppet主/代理方案)中或在无主方案的任何* .pp文件中使用以下语法声明此类,只需调用以下方法即可应用:
puppet apply <name_of_pp_file>.pp
简单的声明如下:
class { 'lighttpd':
<anyparameterfromthisclassdefinition> => <value>
}
例:
class { 'lighttpd':
use_ssl => true,
}
如果您不想在类声明中传递任何参数,则将使用由自定义函数params_lookup为该类中的每个参数计算的默认值。 在这种情况下,您可以简单地执行以下操作:
include lighttpd
希望这能给您足够的起点。 干杯!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.