2

我正在使用自定义 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}": }

}
4

0 回答 0