Puppet类默认参数/变量

时间:2013-05-09 18:07:18

标签: puppet

我正在使用自定义ENC,并且希望能够将类默认参数放到范围更高的变量中。

这允许我在顶部作用域,节点作用域,包装类作用域等中设置一个变量,该值将被选为一个类的默认参数。

然后,我还可以在类定义中设置参数。这种方法的一个缺点是,一个类可能会发现“不安全”的默认值,尽管我认为这是不太可能的情况。

有没有其他人在解决这样的问题,这总体上是一个好主意还是一个坏主意?

custom_enc.yaml

classes:
  rsyslog::client:
     port: 1234
parameters:
  server: my-rsyslog-server

清单/ 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}": }

}

0 个答案:

没有答案