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 may help reduce 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 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 stdlib's facts.d
directory to create static facts that are node specific.
This facts.d
mechanism is included by default on facter Versions 1.7 and higher, and they are referred to as external facts.
Creating custom facts
We will be creating some custom facts, so we will create our Ruby files in the module_name/lib/facter
directory...