正在尝试编写自定义facter模块:
Facter.add("something_status") do
setcode do
$string_to_parse = Facter::Util::Resolution.exec('somecommand --print ')
... do something to string
return something-new
end
end对ruby来说非常陌生。什么是正确的语法来做一些事情?
发布于 2012-10-05 08:16:14
你离做这件事不远了..变量名前不需要$,也不应该以return结尾。作用域的最新var将由Facter检索。
下面是一个示例代码,它分析uname输出并返回一个事实,其中包含一个关于内核版本及其ipv6支持的字符串。
这只是一个例子,但它是有效的,只是尝试一下。
Facter.add("customer") do
setcode do
kernel_release = Facter::Util::Resolution.exec('/bin/uname -r')
# Get version
if kernel_release =~ /^3.2/
answer = "Latest Kernel"
elsif kernel_release =~ /^3.0/
answer = "3.0 Kernel"
elsif kernel_release =~ /^2.6/
answer = "Decent Kernel"
else
answer = "Unknown Kernel"
end
if answer =~ /ipv6/
answer += " with IPV6 Support"
else
answer += " without IPV6 Support"
end
end
end 祝好运!
一些有用的链接:Ruby Wikibooks Control Structures、more ruby info
https://stackoverflow.com/questions/12736749
复制相似问题