puppet模块代码中puppet hiera()和lookup()之间的差异

puppet模块代码中puppet hiera()和lookup()之间的差异,puppet,Puppet,我正在尝试从hiera()切换到lookup(),但它不起作用。 我以前有以下代码行: if (hiera("ntp::enabled",0) == 1 ){ 它工作正常 在简单地将hiera替换为lookup之后: if (lookup("ntp::enabled",0) == 1 ){ 我得到了一个巨大的错误: Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Err

我正在尝试从hiera()切换到lookup(),但它不起作用。 我以前有以下代码行:

if (hiera("ntp::enabled",0) == 1 ){
它工作正常

在简单地将hiera替换为lookup之后:

if (lookup("ntp::enabled",0) == 1 ){
我得到了一个巨大的错误:

    Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Evaluation Error: Error while evaluating a Function Call, 'lookup' expects one of:
  (NameType = Variant[String, Array[String]] name, ValueType = Type value_type?, MergeType = Variant[String[1], Hash[String, Scalar]] merge?)
    rejected: parameter 'value_type' expects a ValueType = Type value, got Integer
  (NameType = Variant[String, Array[String]] name, Optional[ValueType] value_type, Optional[MergeType] merge, DefaultValueType = Any default_value)
    rejected: expects 4 arguments, got 2
  (NameType = Variant[String, Array[String]] name, ValueType = Type value_type?, MergeType = Variant[String[1], Hash[String, Scalar]] merge?)
    rejected: parameter 'value_type' expects a ValueType = Type value, got Integer
  (OptionsWithName = Struct[{'name' => NameType = Variant[String, Array[String]], 'value_type' => Optional[ValueType = Type], 'default_value' => DefaultValueType = Any, 'override' => Optional[Hash[String, Any]], 'default_values_hash' => Optional[Hash[String, Any]], 'merge' => Optional[MergeType = Variant[String[1], Hash[String, Scalar]]]}] options_hash, BlockType = Callable[NameType = Variant[String, Array[String]]] block?)
    rejected: expects 1 argument, got 2
  (Variant[String, Array[String]] name, OptionsWithoutName = Struct[{'value_type' => Optional[ValueType = Type], 'default_value' => DefaultValueType = Any, 'override' => Optional[Hash[String, Any]], 'default_values_hash' => Optional[Hash[String, Any]], 'merge' => Optional[MergeType = Variant[String[1], Hash[String, Scalar]]]}] options_hash, BlockType = Callable[NameType = Variant[String, Array[String]]] block?)
    rejected: parameter 'options_hash' expects an OptionsWithoutName = Struct[{'value_type' => Optional[ValueType = Type], 'default_value' => DefaultValueType = Any, 'override' => Optional[Hash[String, Any]], 'default_values_hash' => Optional[Hash[String, Any]], 'merge' => Optional[MergeType = Variant[String[1], Hash[String, Scalar]]]}] value, got Integer (file: /etc/puppetlabs/code/environments/sandbox/modules/ntp_mycompany/manifests/init.pp, line: 38, column: 5) on node mybox.mycompany.com

可能我遗漏了一些简单的东西,但我认为可以简单地用新的lookup()调用替换不推荐的hiera()调用。

我不是木偶专家,但查看它似乎需要一组不同于
hiera()调用的参数:

lookup( <NAME>, [<VALUE TYPE>], [<MERGE BEHAVIOR>], [<DEFAULT VALUE>] )

我不记得在文档中看到过这一点。您可能还需要更新您的使用情况。是的。我已经通过添加“default_value”键解决了这个问题。
lookup( [<NAME>], <OPTIONS HASH> )
lookup({"name" => "some::thing", "default_value" => "default"})