Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Puppet类默认参数/变量_Puppet - Fatal编程技术网

Puppet类默认参数/变量

Puppet类默认参数/变量,puppet,Puppet,我使用的是自定义ENC,希望能够将类的默认参数设置为范围更高的变量 这允许我在top作用域、node作用域、wrapper类作用域等中设置一个变量,该值将作为类的默认参数 这样,我仍然可以在类定义中设置参数。这种方法的一个缺点是,类可能会选择一个“不安全”的默认值,尽管我觉得这是一种不太可能的情况 有没有其他人考虑过解决这样的问题,这是一个好主意还是一个坏主意 定制附件yaml classes: rsyslog::client: port: 1234 parameters: s

我使用的是自定义ENC,希望能够将类的默认参数设置为范围更高的变量

这允许我在top作用域、node作用域、wrapper类作用域等中设置一个变量,该值将作为类的默认参数

这样,我仍然可以在类定义中设置参数。这种方法的一个缺点是,类可能会选择一个“不安全”的默认值,尽管我觉得这是一种不太可能的情况

有没有其他人考虑过解决这样的问题,这是一个好主意还是一个坏主意

定制附件yaml

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参数将默认为该值。(请注意,自动参数不会合并数组或散列值。)