class puppet::common ($ensure = 'present') { package { 'facter': ensure => $ensure ? { 'present' => 'latest', default => $ensure, } } $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; } # add facter variable to custom facts. file { "/etc/profile.d/puppet.sh": content => "export FACTERLIB=\"${factpath}\"\n", ensure => 'absent', } }