mkdir -p /etc/puppet/modules/public/{manifests,templates,files}
vi /puppet/soft/backup_date.rb
Facter.add("backup_date") do
setcode do
Facter::Util::Resolution.exec('/bin/date +%Y%m%d%H%M%S')
end
end
vi /etc/puppet/modules/public/manifests/init.pp
class public::externalfacter {
exec {"mkdir facter":
command => "mkdir -p /etc/puppet/facter/",
path => ["/usr/bin","/usr/sbin","/bin","/sbin"],
creates => "/etc/puppet/facter/",
before => File["backup_date.rb"],
}
file {"backup_date.rb":
path => "/etc/puppet/facter/backup_date.rb",
source => "puppet:///soft/backup_date.rb",
mode => 755,owner => root,group => root,
ensure => present,
notify => Exec["profile"],
}
exec {"profile":
command => "sed -i '/FACTERLIB/d' /etc/profile && echo 'export FACTERLIB=/etc/puppet/facter'>>/etc/profile && source /etc/profile",
path =>["/usr/local/sbin","/usr/local/bin","/sbin","/bin","/usr/sbin","/usr/bin"],
user => root,group => root,
provider => shell,
refreshonly => true,
}
}
include public::externalfacter