【问题标题】:Using a Facter Fact within a fact for command execution在事实中使用 Facter Fact 来执行命令
【发布时间】:2014-03-19 03:15:49
【问题描述】:

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

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

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

【问题讨论】:

  • 这有点太模糊了。从如何在事实中使用另一个事实(出于什么原因?)到如何在 Ruby 中解析字符串。如果您确切地说明您要完成的工作会更好。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-06-04
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    • 2010-10-16
    • 2017-08-04
    • 2022-10-23
    • 2011-02-18
    • 1970-01-01
    相关资源
    最近更新 更多