【问题标题】:Custom puppet provider: How to retrieve a file from puppet master自定义 puppet 提供程序:如何从 puppet master 检索文件
【发布时间】:2015-05-07 19:58:14
【问题描述】:

我需要从 Puppet master 的自定义 Puppet 提供程序中检索一个静态文件(就像文件内置资源一样)。在 Puppet 代码中定义单独的内置文件资源不是一种选择。所以,在 Puppet 代码中,事情应该是这样的:

custom_type{
  property1 => 'value1'
  property2 => 'value2'
  file => "puppet:///${module_name}/somefile"
}

虽然我之前编写过自定义类型和提供程序,但我无法与 Puppet Master 的文件服务器交互。

【问题讨论】:

    标签: ruby puppet custom-type


    【解决方案1】:

    毕竟我建议使用file 类型。您无需从清单级别执行此操作。 Puppet 可以使用生成的资源来处理这个问题。

    例如,nagios types 做类似的事情。

    在您的自定义类型代码中,引入 generate 挂钩。

    def generate
      if self[:file]
        Puppet::Type.type(:file).new({
          :name   => <whatever the path on the agent is>,
          :ensure => :present,
          :source => self[:file],
        })
      end
    end
    

    代理负责将此资源添加到目录中。

    【讨论】:

      【解决方案2】:

      查看puppet file type,看起来这就是你想要的第103行:

       Puppet::FileServing::Content.indirection.find(metadata.source, :environment => resource.catalog.environment_instance, :links => resource[:links]) 
      

      metadata.source 是文件的路径。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-05
        • 1970-01-01
        • 2015-03-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多