Finding out facts
It's very common for Puppet manifests to need to know something about the system they're running on, for example, its hostname, IP address, or operating system version. Puppet's built-in mechanism for getting system information is called Facter, and each piece of information provided by Facter is known as a fact.
Using the facts hash
You can access Facter facts in your manifest using the facts hash. This is a Puppet variable called $facts
which is available everywhere in the manifest, and to get a particular fact, you supply the name of the fact you want as the key (facts_hash.pp
):
notice($facts['kernel'])
On the Vagrant box, or any Linux system, this will return the value Linux
.
In older versions of Puppet, each fact was a distinct global variable, like this:
notice($::kernel)
You will still see this style of fact reference in some Puppet code, though it is now deprecated and will eventually stop working, so you should always use the $facts hash instead...