Puppet类默认参数/变量
我使用的是自定义ENC,希望能够将类的默认参数设置为范围更高的变量 这允许我在top作用域、node作用域、wrapper类作用域等中设置一个变量,该值将作为类的默认参数 这样,我仍然可以在类定义中设置参数。这种方法的一个缺点是,类可能会选择一个“不安全”的默认值,尽管我觉得这是一种不太可能的情况 有没有其他人考虑过解决这样的问题,这是一个好主意还是一个坏主意 定制附件yamlPuppet类默认参数/变量,puppet,Puppet,我使用的是自定义ENC,希望能够将类的默认参数设置为范围更高的变量 这允许我在top作用域、node作用域、wrapper类作用域等中设置一个变量,该值将作为类的默认参数 这样,我仍然可以在类定义中设置参数。这种方法的一个缺点是,类可能会选择一个“不安全”的默认值,尽管我觉得这是一种不太可能的情况 有没有其他人考虑过解决这样的问题,这是一个好主意还是一个坏主意 定制附件yaml classes: rsyslog::client: port: 1234 parameters: s
classes:
rsyslog::client:
port: 1234
parameters:
server: my-rsyslog-server
manifest/server.pp
class rsyslog::client(
$server => $server, # $server = $server || undef
$port => $port ? { # $port = $port || '514'
'' => '514',
default => $port
}
) {
if !defined($server) { fail "server must be defined" }
notify { "The server is ${server}": }
notify { "The port is ${port}": }
}
你用的是什么版本的木偶?相关报道:你调查过希拉吗?它将负责(并几乎消除)设置默认值,确保设置参数等。如果您愿意,我可以提供一个示例。Hiera支持自动参数设置,因此如果您的yaml有一个键“rsyslog::client::server”,那么rsyslog::client的$server参数将默认为该值。(请注意,自动参数不会合并数组或散列值。)