Puppet facts
Puppet collects system information, called facts, by using the Facter tool. The facts are assigned as values to variables that you can use anywhere in your manifests. Puppet also sets some additional special variables, called built-in variables, which behave a lot like facts.
To see what variables are available from an agent, we can log in to the system running and execute:
#facter -p
processors => {
count => 2,
isa => "x86_64",
models => [
"Intel(R) Core(TM) i5-4310M CPU @ 2.70GHz",
"Intel(R) Core(TM) i5-4310M CPU @ 2.70GHz"
],
physicalcount => 1
}
puppetversion => 6.22.1
ruby => {
platform => "x86_64-linux",
sitedir => "/opt/puppetlabs/puppet/lib/ruby/site_ruby/2.5.0",
version => "2.5.9"
Note: This is only a small sample of the output.
To illustrate a basic use of facts, let’s create a new module by executing the following from the modules folder.
#pdk new module my_facts
We update modules/my_facts/manifests/my_class.pp as shown:
# @summary Use facts
#
# Use facts
#
# @example
# include my_facts::my_class
class my_facts::my_class {
file { '/tmp/my_facts':
ensure => 'present',
content => "Another ${facts['os']['family']}",
path => '/tmp/my_facts',
}
}
Github repo for:https://github.com/zippyopstraining/puppetfact/blob/main/my_class.pp
Facter command can be used to list all the different environment variables and their associated values. These collections of facts come with facter out-of-the-box and are referred to as core facts. One can add custom facts to the collection.
Relevant Blogs:
Recent Comments
No comments
Leave a Comment
We will be happy to hear what you think about this post