0

我正在尝试编写一个自定义事实模块,该模块通过命令字符串和事实事实变量的连接将事实包含在命令的事实中:

Facter.add("customfact") do
  setcode do
    $string_to_parse = Facter::Util::Resolution.exec('somecommand' + $::fact)
  end
end

ruby 和 Puppet 的新手... 1. 什么是正确的语法来做这件事?

  1. 有什么方法可以将输出解析为事实数组,或者在 $string_to_parse 中搜索我需要的内容的正确方法是什么。

以下是使用命令生成的输出示例:

TAG     security-group  sg-0a7a8a61     aws:cloudformation:stack-name   awseb-e-5tzgj9fq5b-stack

我需要安全组和堆栈名称。

4

1 回答 1

0

您想Facter.value(:sourcefact)在新事实中使用来访问变量。至于获取单个值,您可能希望将它们作为单独的事实,但您可以通过管道'somecommand' + Facter.value(:sourcefact) + ' | awk {"print $3"}'为您提供安全组(例如)。

于 2014-04-09T05:24:16.980 回答