double-z
4/6/2012 - 7:17 AM

custom_facts.rb

# these commands go on the puppetmaster server
# put in /etc/puppet/manifests/site.pp


# process server roles
node default {
  case $serverrole {
    app_server: {
      include general
      include apache
      include rails
    }
    db_server: {
      include general
      include database
      include replication
    }
    default: {
    }
  }
}

# put these settings in config for each client

[puppetd]
pluginsync = true
server = myserver.mydomain.com
certname = general
# put on each client, /etc/puppet/customfacts.yml
serverrole: app_server
datacenter: rackspace
# put on the server
# put in /etc/puppet/custom/plugins/facter/custom_facts.rb

require 'yaml'
if File.exist?("/etc/puppet/custom_facts.yml")
  YAML.load_file("/etc/puppet/custom_facts.yml").each do |key, value|
    Facter.add(key.to_sym) do
      setcode { value }
    end
  end
end