Custom facts
While managing a complex environment, facts can be used to bring order out of chaos. If your manifests have large case
statements or nested if
statements, a custom fact might help in reducing the complexity or allow you to change your logic.
When you work in a large organization, keeping the number of facts to a minimum is important, as several groups may be working on the same system and thus interaction between the users may adversely affect one another's work or they may find it difficult to understand how everything fits together.
As we have already seen in the previous chapter, if our facts are simple text values that are node specific, we can just use the facts.d
directory of stdlib
to create static facts that are node specific.
This facts.d
mechanism is included, by default, on Facter versions 1.7 and higher and is referred to as external fact.
Creating custom facts
We will be creating some custom facts; therefore, we will create our Ruby files in the module_name/lib/facter...