0

是否可以从 ruby​​ 中访问因子变量?

if %{virtual} == 'virtualbox'
  result = 'changeit'
else
  result = c[1]['passwd']
end

$::virtual事实上,变量也是如此。

4

1 回答 1

0

该方法取决于您使用的 Ruby 函数 API。如果您使用的是当前的4.x API(您的函数位于lib/puppet/functions/*.rb),那么:

if closure_scope['facts']['virtual'] == 'virtualbox'

文档:在 Ruby 中编写函数:访问 Puppet 变量

或者,如果您使用的是旧版 3.x 兼容 API(您的函数位于lib/puppet/parser/functions/*.rb),则:

if lookupvar('virtual') == 'virtualbox'

文档:遗留的 Ruby 函数 API:使用事实和变量

于 2017-04-28T10:52:04.417 回答