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