0

Is it possible to access a facter variable from within ruby?

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

So $::virtual is a variable in facter.

Matthew Schuchard
  • 25,172
  • 3
  • 47
  • 67

1 Answers1

0

The method depends on which Ruby function API you're using. If you're using the current 4.x API (your function is at lib/puppet/functions/*.rb) then:

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

Docs: Writing functions in Ruby: Accessing Puppet variables

Or if you're using the legacy 3.x compatible API (your function is at lib/puppet/parser/functions/*.rb) then:

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

Docs: The legacy Ruby functions API: Using Facts and Variables

Dominic Cleal
  • 3,205
  • 19
  • 22