class puppet::common ( $ensure = 'present') { $pkg_ens = $ensure ? { 'present' => 'latest', default => $ensure, } package { 'facter': ensure => 'latest' } package { 'libaugeas-ruby': } $ens_dir = $ensure ? { 'present' => 'directory', default => $ensure, } $facts_d = '/etc/facter/facts.d' File['/etc/facter'] -> File[$facts_d] $pv_dir = $::puppet_vardir ? { '' => '/var/lib/puppet', default => $::puppet_vardir } file { [ '/etc/facter', $facts_d]: ensure => $ens_dir, mode => '0755', owner => 'root', group => 'root'; "${pv_dir}/exported": ensure => $ens_dir; } $factpath = "${pv_dir}/lib/facter" # add facter variable to custom facts. file { '/etc/profile.d/puppet.sh': content => "export FACTERLIB=\"${factpath}\"\n", } }