Logging command output
When you use the exec
resources to run commands on the node, Puppet will give you an error message like the following if a command returns a non-zero exit status:
Notice: /Stage[main]//Node[cookbook]/Exec[this-will-fail]/returns: /bin/cat: /tmp/missing: No such file or directory Error: /bin/cat /tmp/missing returned 1 instead of one of [0]
As you can see, Puppet not only reports that the command failed, but shows its output:
/bin/cat: /tmp/missing: No such file or directory
This is useful for figuring out why the command didn't work, but sometimes the command actually succeeds (in that it returns a zero exit status) but still doesn't do what we wanted. In that case, how can you see the command output? You can use the
logoutput
attribute.
How to do it…
Follow these steps in order to log command output:
Define an
exec
resource with thelogoutput
parameter as shown in the following code snippet:exec { 'misbehaving-command': command => '/bin/cat /etc/hostname', ...