通知模块以从p运行中重建事实

时间:2018-10-19 14:43:47

标签: ruby puppet facter

假设我在puppet中有一个模块可以创建自定义事实。但是,这样做需要安装软件包package_a。根据此程序包是否存在,它将决定生成事实。

此软件包是作为配置文件中运行的木偶的一部分安装的。因此,最初不会从模块中生成事实。

一旦安装了用于生成自定义事实的软件包,是否有任何方法可以通知puppet收集这些事实,以便可以在以下配置文件中使用它?

添加自定义事实的模块:

Facter.add(:custom_facts) do
  confine do
    exists = Facter::Core::Execution.which('package_a') != nil
    Puppet.debug "Testing custom_facts fact applicable? #{exists.inspect}"
    true
  end

  setcode do
    to_ret = {}
    result = JSON.parse(Facter::Core::Execution.execute('package_a some command'))
    Puppet.debug "Facts returned by command: #{result.inspect}"
    result.each do |key,value|
      to_ret[key]={
        'value'   => value['value'],
      }
    end
    to_ret
  end
end

0 个答案:

没有答案