天天看點

puppet連載16:搭建facter插件

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

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