在事实中使用Facter事实来执行命令

时间:2014-03-19 03:15:50

标签: ruby amazon-web-services amazon puppet facter

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

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

红宝石和木偶新手...... 1.用这个做什么的正确语法是什么?

  1. 有没有办法将输出解析成一系列事实,或者在$ string_to_parse中搜索我需要的内容的正确方法是什么。
  2. 以下是使用以下命令生成的输出示例:

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

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

1 个答案:

答案 0 :(得分:0)

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