If writing and maintaining Ruby code is not desirable in your team for any reason, you might prefer to use an alternative that allows shell scripts, or really any kind of programming language, or even static data with no programming involved at all. Facter allows this in the form of external facts.
Creating an external fact is similar to the process used for regular custom facts, with the following distinctions:
- External facts are produced by standalone executables or files with static data, which the agent must find in /etc/puppetlabs/facter/facts.d/
- The data is not just a string value, but an arbitrary number of key=value pairs instead
The data need not use the ini file notation style; the key/value pairs can also be in the YAML or JSON format. The following external facts hold the same data: