puppet 7:File.content 中的延迟值不可能吗?

puppet 7:File.content 中的延迟值不可能吗?

我正在尝试使用 Puppet 7(服务器 7.4.2 和代理 7.14.0)中的延迟值来写入文件,如下所示:

  file { "/tmp/testfile":
    ensure => 'present',
    content => Deferred("node_decrypt", [node_encrypt("abc")]),
  }

但是在编译目录时,服务器会打印

Puppet File[/tmp/testfile]['content'] contains a Deferred value. It will be converted to the String 'Deferred({'name' => 'node_decrypt', 'arguments' => ["-...

该文件的效果是它包含文本“Deferred(...”而不是“abc”。

Notify.message 也一样。我配置错误了吗?或者有什么线索可以解释为什么它不适用于 File.content。如果是,将延迟值写入文件的替代方法是什么?

答案1

K. Shu的提示我自己找到了答案:这是由于使用序列化格式造成的pson。我使用这种格式是为了兼容 puppet 4 代理。一旦我切换到 json,延迟函数就开始正常工作:

puppet agent --preferred_serialization_format=json ...

相关内容