我正在尝试使用 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 ...