Facter
What it is
Facter is a free command-line tool for collecting system details such as hardware, network settings, and operating system type and version. Puppet uses those facts before requesting a catalog or compiling one with puppet apply. It includes core facts in legacy and structured forms, although available facts vary by system. Users can write custom facts in Ruby, with multiple ways to resolve a fact’s value, or use external facts that return static data or results from an executable. Facts may be hashes or arrays, and Boolean, numeric, and structured values retain their types. Configuration can block fact groups or cache facts with time-to-live settings, which may help when collection is slow. Facter facts can be used in Puppet manifests, and the CLI can load Puppet-specific facts with the --puppet option. PuppetDB’s API can support tools for exploring, searching, and reporting on infrastructure facts. Facter supports Linux, macOS, Windows, and self-hosted use. Legacy facts are omitted from default CLI output unless --show-legacy is used. Windows disk and partition facts were added in Facter 4.21.
For and against
For
- Collects hardware, network, and operating system details
- Supports custom Ruby and external facts
- Preserves Boolean, numeric, and structured values
- Can cache facts with time-to-live settings
Against
- Facter does not create facter.conf automatically
- Legacy facts require --show-legacy in CLI output
- Custom-fact examples require Ruby familiarity
The verdict
Facter gathers system facts for Puppet and related infrastructure workflows, with options for custom and external data. Users should account for its manual configuration-file setup and Ruby knowledge requirement for custom facts.
Who it suits
Facter suits command-line users who need system facts for Puppet workflows or infrastructure reporting. Writing custom facts requires some familiarity with Ruby.
Plans and prices
Puppet Core Developer
up to 25 nodes · latest releases for development
Read 14 Oct 2026 · puppet.com
Puppet Core Commercial
25+ nodes · vendor-supported builds · support and SLAs
Read 14 Oct 2026 · puppet.com
Puppet Enterprise
subscription per node · web GUI · RBAC · hybrid infrastructure management
Read 14 Oct 2026 · puppet.com
Puppet Enterprise Advanced
subscription per node · compliance and vulnerability remediation · AI features · priority support
Read 14 Oct 2026 · puppet.com
On the record
- Acquisition news
- Perforce announced completion of its Puppet acquisition on May 18, 2022, with financial terms undisclosed.perforce.com · read 14 Oct 2026
- API extensibility
- Resolvers gather data from commands, files or other system sources, while the framework formats and exposes those values through Facter’s Ruby APIs.github.com · read 14 Oct 2026
- Built-in facts
- Facter ships with built-in core facts, including legacy and structured facts, though not all facts apply to every system.help.puppet.com · read 4 Oct 2026
- Collected data
- The command-line tool gathers hardware details, network settings, operating-system type and version, hostname, IP address and other system information.github.com · read 14 Oct 2026
- Command line
- Facter can be installed as a Ruby gem with the command gem install facter.help.puppet.com · read 14 Oct 2026
- Company headquarters and size
- LinkedIn lists Perforce Puppet headquarters in Minneapolis, Minnesota and company size of 501–1,000 employees.linkedin.com · read 14 Oct 2026
- Company identity
- Puppet was created in 2005 by Luke Kanies and has been owned by Perforce since 2022.puppet.com · read 14 Oct 2026
- Configuration
- Facter can be configured to block fact groups or cache facts with time-to-live settings; this can help when fact collection is slow.help.puppet.com · read 4 Oct 2026
- Configuration file limit
- Facter does not create facter.conf automatically, so users must create it manually or manage it with a module.help.puppet.com · read 4 Oct 2026
- Custom facts
- Users can add custom facts with Ruby snippets on the primary Puppet server, distributed to clients through module plug-ins.help.puppet.com · read 14 Oct 2026
- Documentation depth
- Official documentation covers CLI use, core facts, custom and external facts, structured facts and facter.conf configuration.help.puppet.com · read 14 Oct 2026
- Enterprise trial allowance
- Puppet Enterprise can be run on 10 nodes at no charge with no stated time limit.puppet.com · read 14 Oct 2026
- External facts
- External facts may come from arbitrary executables, scripts or static structured-data files, allowing facts to be written in languages such as Perl, C or plain text.help.puppet.com · read 14 Oct 2026
- Fact configuration
- The facter.conf file can cache or block fact groups and individual facts and controls global and command-line behavior.help.puppet.com · read 14 Oct 2026
- Fact groups
- Facter 4 supports user-defined fact groups and dot notation for custom and external fact hierarchies.puppet.com · read 14 Oct 2026
- Free node allowance
- Puppet Core has a free developer or user license for testing or development on a maximum of 25 nodes.help.puppet.com · read 14 Oct 2026
- Granular caching
- Facter 4 supports blocking and caching at any level of a fact hierarchy, including individual nested values.puppet.com · read 14 Oct 2026
- Independent pricing perception
- G2’s review summary places Puppet Enterprise’s perceived cost at the highest category, shown as four dollar signs, and reports an average implementation time of four months.g2.com · read 14 Oct 2026