【问题标题】:Add some debug to a puppet custom type为 puppet 自定义类型添加一些调试
【发布时间】:2015-10-05 14:52:52
【问题描述】:

我在 /etc/puppet/modules/tipo/lib/puppet/type/customtipo.rb 中有一个 puppet 自定义类型,其内容是:

require 'logger'
Puppet::Type.newtype(:customtipo) do
        newproperty(:parametro) do
                log.info("ES UN PARAMETRO")
        end
end

我知道这是一个虚拟的自定义类型,但我从这类东西开始,资源放在 /etc/puppet/modules/tipo/manifests/init.pp 中,内容是:

class tipo {
        customtipo {
        "ejemplo":
        parametro => "uno",
        }
}

情况是是否是“参数”,它没有像我预期的那样显示消息“ES UN PARAMETRO”。有没有其他方法可以使用自定义类型来实现这一点?谢谢!

【问题讨论】:

    标签: ruby puppet custom-type


    【解决方案1】:

    请注意,log 命令将在 Ruby 运行时加载您的类型时运行,而不是在编译器遇到您类型的资源时运行。

    另请注意,Puppet 在Puppet::Util::Logging 中拥有自己的日志记录框架,它混合到 any 类型中。您始终可以只使用Puppet.infoPuppet.debug

    要了解如何调试类型代码,您应该熟悉可用的钩子。查看 Puppet 自己的源代码中的现有类型。你可以这样开始:

    Puppet::Type.newtype(:customtipo) do
      newparam(:parametro) do
        # no actual validation, just logging to get started
        validate do |value|   
          Puppet.info("parameter 'parametro' has value '#{value}'")
        end
      end
    end
    

    请注意,我将 newproperty 更改为 newparam 是因为您希望拥有一个名为“参数”的属性。那会很混乱。

    【讨论】:

    • 同样,使用 Puppet.notice() 让消息出现在非详细代理运行的 puppet 报告中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 2011-08-10
    相关资源
    最近更新 更多