Facter - custom fact, returns empty data set when invoked by Puppet agent

Posted by user3684494 on Server Fault See other posts from Server Fault or by user3684494
Published on 2014-06-04T10:48:37Z Indexed on 2014/06/04 21:28 UTC
Read the original article Hit count: 212

Filed under:
|

According to this puppet labs article, I can create custom facts from shell scripts.

I have created a bash script that returns a single fact, it is packaged in a modules facts.d directory. The module is included on the target system via an ENC class. When invoked by the puppet agent on the target it returns an empty set, when run by hand on the agent it correctly returns the fact. The script has execute permission on the master, but does not have it on the agent.

I saw a bug report related to permissions and file types, but that was windows and supposed to be fixed in puppet version 3.

What am I doing wrong?

ENC definition:

--- classes: facttest:

Shell script:

#!/bin/bash echo "test_fact1=$(hostname)"

Permissions:

master: -rwxr-xr-x 1 root root ... modules/facttest/facts.d/testfact.sh agent: -rw-r--r-- 1 root root ... /var/lib/puppet/facts.d/testfact.sh

Agent message:

Fact file /var/lib/puppet/facts.d/testfact.sh was parsed but returned an empty data set

Version information: Puppet master: 3.5.1 (Debian) Facter master: 2.0.1 Puppet agent: 3.6.1 (OpenSUSE) Facter agent: 2.0.1

© Server Fault or respective owner

Related posts about puppet

Related posts about facter