gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 07:54:59 27 4
gpt4 key购买 nike

我遇到以下自定义事实时遇到了困难;详情如下。

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

"/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"

请注意,custom_variable 事实需要在 pluginsync 期间在系统上分配,然后才能在此自定义事实中使用。此外,您在上面的示例中切换了主机名和 fqdn,因此在实现此示例时请确保它们正确对齐。

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

关于ruby - 在自定义事实中使用其他事实,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43904906/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com