gpt4 book ai didi

ruby - 向 puppet 自定义类型添加一些调试

转载 作者:数据小太阳 更新时间:2023-10-29 08:31:13 24 4
gpt4 key购买 nike

我在/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”。有没有其他方法可以使用自定义类型来实现这一点?谢谢!

最佳答案

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

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

要了解如何调试类型代码,您应该熟悉可用的 Hook 。查看 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,因为您想要拥有名为“parameter”的属性。那会很困惑。

关于ruby - 向 puppet 自定义类型添加一些调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32951567/

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