木偶理解参数 class
puppet understanding parameters class
我是 Puppet 的新手。我有一个傀儡基础设施。
我从
安装
puppetforge "example42/lighttpd"
我能够毫无问题地将此 class 部署到傀儡控制的节点。
我现在的问题是,我如何使用 class 中的参数?我不明白我可以在哪里激活 parameters.i 想用自定义 index.html 和不同的日志文件部署 lighttpd path.i 希望你能给我一个后盾:)
在文件中params.pp
This class is not intended to be used directly.
It may be imported or inherited by other classes
但是我该如何导入这个?
首先,要直接开始使用 Puppet,您应该查看相关模块的文档(即自述文件、README.md 等)。接下来,了解参数模式。 puppet 模块中的 params
class 通常是 class ,不包含任何资源,旨在保存模块的默认数据(不是从 hiera 等外部来源提供的数据)。大多数时候你会看到这样的东西:
inherits lighttpd::param
在 init 或模块中的另一个清单文件中。那是因为它继承了参数 class.
的值
希望这至少能有所帮助。
简而言之,不要直接使用params.pp(通过声明)。这个 class 是 params 设计模式的一部分,它声明我们参数的默认值可以放在 params.pp puppet class 中,然后可以被所有 classes 继承,其中我们需要访问 params.pp
中定义的参数
我认为最好的起点是每个 Puppet 模块都有的 init.pp class。它可以在您从 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 定义:
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命名空间的其他模块的一部分)。您可以在以下 link: How to use params_lookup 章节中查看此函数如何使用的详细信息:PARAMS LOOKUP ORDER
但是,为了方便您,您可以在 site.pp(如果您使用 Puppet master/agent 场景)或任何 *.无主场景下的pp文件,只需调用即可应用:
puppet apply <name_of_pp_file>.pp
简单的声明如下:
class { 'lighttpd':
<anyparameterfromthisclassdefinition> => <value>
}
示例:
class { 'lighttpd':
use_ssl => true,
}
如果您不想在 class 声明中传递任何参数,那么将使用由自定义函数 params_lookup 为该 class 中的每个参数计算的默认值.在那种情况下,您可以简单地这样做:
include lighttpd
希望这足以让您开始。干杯!
我是 Puppet 的新手。我有一个傀儡基础设施。 我从
安装puppetforge "example42/lighttpd"
我能够毫无问题地将此 class 部署到傀儡控制的节点。 我现在的问题是,我如何使用 class 中的参数?我不明白我可以在哪里激活 parameters.i 想用自定义 index.html 和不同的日志文件部署 lighttpd path.i 希望你能给我一个后盾:)
在文件中params.pp
This class is not intended to be used directly.
It may be imported or inherited by other classes
但是我该如何导入这个?
首先,要直接开始使用 Puppet,您应该查看相关模块的文档(即自述文件、README.md 等)。接下来,了解参数模式。 puppet 模块中的 params
class 通常是 class ,不包含任何资源,旨在保存模块的默认数据(不是从 hiera 等外部来源提供的数据)。大多数时候你会看到这样的东西:
inherits lighttpd::param
在 init 或模块中的另一个清单文件中。那是因为它继承了参数 class.
的值希望这至少能有所帮助。
简而言之,不要直接使用params.pp(通过声明)。这个 class 是 params 设计模式的一部分,它声明我们参数的默认值可以放在 params.pp puppet class 中,然后可以被所有 classes 继承,其中我们需要访问 params.pp
中定义的参数我认为最好的起点是每个 Puppet 模块都有的 init.pp class。它可以在您从 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 定义:
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命名空间的其他模块的一部分)。您可以在以下 link: How to use params_lookup 章节中查看此函数如何使用的详细信息:PARAMS LOOKUP ORDER
但是,为了方便您,您可以在 site.pp(如果您使用 Puppet master/agent 场景)或任何 *.无主场景下的pp文件,只需调用即可应用:
puppet apply <name_of_pp_file>.pp
简单的声明如下:
class { 'lighttpd':
<anyparameterfromthisclassdefinition> => <value>
}
示例:
class { 'lighttpd':
use_ssl => true,
}
如果您不想在 class 声明中传递任何参数,那么将使用由自定义函数 params_lookup 为该 class 中的每个参数计算的默认值.在那种情况下,您可以简单地这样做:
include lighttpd
希望这足以让您开始。干杯!