Facter 2.4: Release Notes

Included in Puppet Enterprise 3.8. A newer version is available; see the version menu above for details.

This page documents the history of the Facter 2.4 series. (Elsewhere: release notes for Facter 2.3, Facter 2.2, Facter 2.1, and Facter 2.0).

Facter 2.4.6

Released January 26, 2016.

Facter 2.4.6 reverts a change in Facter 2.4.5 that caused breaking behavior for users.

Reverted: Use public IP address for the ipaddress fact

Many users were relying on Facter’s existing behavior in Facter 2.x for returning IP addresses, so this change has been reverted. Users who want to ignore private IP addresses when reporting the ipadress fact can upgrade to Facter 3.x.

Facter 2.4.5

Released January 20, 2016.

Facter 2.4.5 is a bug fix release in the Facter 2.4 series.

Bug fix: Use public IP address for the ipaddress fact

Previous versions of Facter 2 reported the IP address of the first interface in alphabetical order in the ipaddress fact, which wasn’t always desirable as that interface might not have a public IP address. Facter 2.4.5 ignores private IP addresses when reporting the ipaddress fact.

Bug fixes: Miscellaneous

Full list of issues

See Jira for a full list of issues resolved in Facter 2.4.5.

Facter 2.4.4

Released May 20, 2015

Facter 2.4.4 is a bug fix release in the Facter 2.4 series. It also deprecates the --puppet command line option, since it caused circular load dependencies. To run Facter in Puppet’s context, you should use the puppet facts command instead.

Facter 2.4.3

Released April 2, 2015

Facter 2.4.3 is an AIO support release in the Facter 2.4 series that also includes two improvements to performance, and multiple bug fixes.

AIO External Facts Directory Change

Changed external facts directory from /opt/puppetlabs/agent/facts.d to /opt/puppetlabs/facter/facts.d on *nix. Windows is unchanged.

Improvements to Performance and Speed

  • Reduced calls to ip link show for performance. Facter::Util:IP.get_interface_value called get_bonding_interface for every possible value, which could have caused performance issues if many interfaces were being used.

  • Improved the speed of puppetversion in standalone Facter. There is no notable difference when calling Facter while Puppet is already running. Previously, running Facter with --timing showed that puppetversion was by far the slowest fact. This was not true when executed by Puppet, but gave the impression that Puppet is slow.


Full List of Issues

See Jira for a full list of issues resolved in Facter 2.4.3.

Facter 2.4.2

Facter 2.4.2 was not publicly released, and no packages were provided.

Facter 2.4.1

Released February 10, 2015.

Facter 2.4.1 is a security fix release in the Facter 2.4 series. It also fixes one non-security bug.

SECURITY FIX: Leaking EC2 IAM Tokens

If an EC2 instance had an IAM (Identity and Access Management) role assigned to it, Facter’s output would include that node’s temporary security credentials, which could be used to perform requests against the AWS APIs. (To use the credentials, an attacker would need to obtain Facter output for that node.)

Since these credentials aren’t meant to leave the node they’re installed on, Facter now filters them out when making facts from EC2 instance data.

These temporary credentials expire relatively quickly and are automatically replaced with new ones. Once they’ve expired, no further remediation should be needed.

KVM Not Detected When Running Facter as Non-Root User

When Facter was run as a non-root user, the virtual fact wasn’t properly detecting machines running under KVM, which could prevent evaluation of other facts (including EC2 data).

Full List of Issues

See Jira for a full list of issues resolved in Facter 2.4.1.

Facter 2.4.0

Released January 22, 2015.

Facter 2.4.0 is a backward-compatible feature release in the Facter 2 series.

This release has several backend improvements to prepare for Puppet 4.0. It doesn’t add any new facts, but does add a new key to the partitions fact and improves OS support for a few others.

Preparation for Puppet 4

Puppet 4.0 is coming soon, and Facter needed some changes to keep up. The current plan is that Facter 2.4.0 will be fully compatible with Puppet 4.

The main change is to the filesystem layout: Puppet 4 will change the directories it uses for configuration and synced plugins, and Facter can now use those new directories (as well as the existing Puppet 3 directories). We also updated the facter --puppet feature to account for some removed code, and made it so Puppet 4 can show Facter’s error and warning messages in its logs.

Fact Changes or Improvements

The partitions fact now includes a label key for each partition. Like this:

    size: '1953523087'
    filesystem: ntfs
    size: '2014'
    label: BIOS boot partition
    uuid: e746c990-fb8d-4449-90ad-c517ccd859f6
    size: '204800'
    mount: /boot
    label: Linux filesystem
    filesystem: ext2

This release also improves the ipaddress_<ID>, macaddress_<ID>, mtu_<ID>, netmask_<ID>, and network_<ID> facts on AIX.

Fact Bugs

This release fixes several bugs with various facts.

Improvements for External Tools

Sometimes, tools like Boxen want to load their own collection of external facts from their own directory, and they generally subclass Facter::Util::DirectoryLoader to do it. The Boxen folk also wanted to set a different weight for facts from that directory, but there wasn’t a way to do that. Now there is, by passing an optional weight argument to that class’s initializer.

Full List of Issues

See Jira for a full list of issues resolved in Facter 2.4.0.

↑ Back to top