あなたはそれを行うことから遠く離れていません..変数名の前に $ は必要ありません。スコープの最新の 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、より多くの ruby 情報