繁体   English   中英

在自定义事实中使用其他事实

[英]Use other facts in a custom fact

我对以下自定义事实感到困难; 详情如下。

自定义事实需要在以下文件夹中查找某个json文件。 这在清单中使用时显示信息。 但是,当我将它添加到自定义事实时,它不起作用。

"/opt/${::hostname}/${::custom_variable}_${::fqdn}.json"

但是,如果我硬编码如下所示的值,它可以正常工作。

"/opt/host1.domain.com/mycompany_host1.json"

请注意,自定义变量是在Puppet控制台上针对“分类”定义的。

如果您需要在自定义事实中使用事实,则必须使用Facter的.value方法访问它们。 当事实被引用为该方法的符号参数时,可以访问它们的值(例如, Facter.value(:hostname) )。 为了能够使用Facter类,您必须在Ruby文件中为自定义事实要求:

require 'facter'

然后,您可以使用字符串插值以正常方式使用上例中的变量:

"/opt/#{Facter.value(:hostname)}/#{Facter.value(:custom_variable)}_#{Facter.value(:fqdn)}.json"

请注意,在使用此自定义事实之前,需要在pluginsync期间在系统上分配custom_variable事实。 此外,您在上面的示例中切换了hostname和fqdn,因此请确保在实现此操作时正确对齐。

https://docs.puppet.com/facter/3.6/custom_facts.html#using-other-facts

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM