Difference between revisions of "Facterhandson"

From Gridkaschool
Line 7: Line 7:
 
# Write a custom fact or code external fact to produce "role" fact
 
# Write a custom fact or code external fact to produce "role" fact
 
## One way of doing the custom fact, which should live in $modulepath/lib/facter/role.rb:
 
## One way of doing the custom fact, which should live in $modulepath/lib/facter/role.rb:
  +
<syntaxhighlight lang=ruby>
 
 
require 'facter'
 
require 'facter'
 
Facter.add("role") do
 
Facter.add("role") do
Line 14: Line 14:
 
end
 
end
 
end
 
end
  +
</syntaxhighlight>
 
 
Using the facts
 
Using the facts
 
# facter -p
 
# facter -p

Revision as of 10:33, 4 September 2014

  1. Create an external fact with key "owner" with value of your name, or your team
    1. tips:
    2. you want to create /etc/facter/facts.d/owner
    3. use a puppet file resource, or try using $modulepath/facts.d/owner
  2. Add a file "/etc/role" with choice of value of "web", "data", or "compute"
    1. use a puppet file resource to create the file
  3. Write a custom fact or code external fact to produce "role" fact
    1. One way of doing the custom fact, which should live in $modulepath/lib/facter/role.rb:
 require 'facter'
 Facter.add("role") do
  setcode do
     %x{cat /etc/role}.chomp
  end
 end

Using the facts

  1. facter -p
  2. Use the facts as variables to populate motd
  3. Remember that facts are top-scope, so you will want $::role and $::owner