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

  • Puppet 2.7 Cookbook
  • John Arundel
  • 224字
  • 2021-04-02 18:20:03

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,
主站蜘蛛池模板: 玛沁县| 贺州市| 茶陵县| 六枝特区| 敦化市| 新昌县| 枣阳市| 大埔县| 莆田市| 肃宁县| 越西县| 滦平县| 仲巴县| 荔浦县| 平利县| 准格尔旗| 万山特区| 沙田区| 九台市| 滕州市| 北海市| 孝昌县| 游戏| 鸡西市| 大田县| 屏东市| 怀化市| 京山县| 台东市| 沙田区| 水城县| 清远市| 湖南省| 凤翔县| 营山县| 汽车| 肥东县| 垦利县| 莱阳市| 安陆市| 丰顺县|