While Facter's built-in facts are useful, it's actually quite easy to add your own facts. For example, if you have machines in different data centers or hosting providers, you could add a custom fact for this so that Puppet can determine whether any local settings need to be applied (for example, local DNS servers or network routes).
Here's an example of a simple custom fact:
- Create the
modules/facts/lib/facter
directory and then create themodules/facts/lib/facter/hello.rb
file with the following contents:
Facter.add(:hello) do setcode do "Hello, world" end end
[root@cookbook ~]# puppet plugin download Notice: /File[/opt/puppetlabs/puppet/cache/lib/facter/hello.rb]/ensure: defined content as '{md5}f66d5e290459388c5ffb3694dd22388b' Downloaded these plugins: /opt/puppetlabs/puppet/cache/lib/facter/hello.rb
- Run
facter
to see your new fact value:
[root@cookbook ~]# facter -p hello Hello, world