官术网_书友最值得收藏!

Logging command output

"Computer says no."—Little Britain

Detailed feedback on problems can be helpful. When you use exec resources to run commands on the node, it's not always easy to find out why they haven't worked. Puppet will give you an error message if a command returns a non-zero exit status. The error will be similar to the following:

err: /Stage[main]//Node[cookbook]/Exec[this-will-fail]/returns: change from notrun to 0 failed: /bin/ls file-that-doesnt-exist returned 2 instead of one of [0] at /etc/puppet/manifests/nodes.pp:10

Often we would like to see the actual output from the command that failed, rather than just the numerical exit status. You can do this with the logoutput parameter.

How to do it…

Define an exec resource with the logoutput parameter as follows:

exec { "this-will-fail":
    command   => "/bin/ls file-that-doesnt-exist",
    logoutput => on_failure,
}

How it works…

Now, if the command fails, Puppet will also print its output:

notice: /Stage[main]//Node[cookbook]/Exec[this-will-fail]/returns: /bin/ls: cannot access file-that-doesnt-exist: No such file or directory err: /Stage[main]//Node[cookbook]/Exec[this-will-fail]/returns: change from notrun to 0 failed: /bin/ls file-that-doesnt-exist returned 2 instead of one of [0] at /etc/puppet/manifests/nodes.pp:11

There's more…

You can set this to be the default for all exec resources by defining the following:

Exec {
    logoutput => on_failure,
}

If you want to see the command output whether it succeeds or fails, use the following:

logoutput => true,
主站蜘蛛池模板: 建瓯市| 门源| 高邑县| 舟曲县| 喀喇沁旗| 江门市| 廉江市| 南安市| 宁都县| 瑞安市| 盖州市| 聂拉木县| 资溪县| 略阳县| 谷城县| 温州市| 临沭县| 水富县| 襄城县| 崇礼县| 梅州市| 博爱县| 怀安县| 衡南县| 渭源县| 张家港市| 全州县| 景宁| 涟水县| 汾阳市| 双城市| 耿马| 云林县| 满城县| 全州县| 金华市| 彰武县| 桂平市| 句容市| 密山市| 军事|