3

我的问题类似于:如何在控制台中显示 Opscode Chef bash 命令的输出?

我希望能够看到我正在运行的配方的控制台输出。特别是,我的配方未能启动 JBoss,因为JAVA_HOME没有设置。我花了一整天的时间才弄清楚这一点,因为该语句JAVA_HOME is undefined没有被打印到 Chef 输出中。-l debug当单独运行 chef 时,可以通过附加到命令来打开调试输出,如下所示:chef-solo -c solo.rb -j node.json -l debug

但是,在使用 Amazon OpsWorks 时,没有这样的选项:

sudo opsworks-agent-cli run_command [activity] [date] [/path/to/valid/json.file]

如何添加日志级别run_command

4

2 回答 2

9

来源:http ://docs.aws.amazon.com/opsworks/latest/userguide/troubleshoot.html

每次 Chef 运行都会生成一个日志,其中提供了运行的详细描述,并且是有价值的故障排除资源。要指定日志中的详细信息量,请将 Chef::Log.level 语句添加到指定所需日志级别的自定义配方。默认值为:信息。以下示例显示如何将 Chef 日志级别设置为 :debug,它提供了最详细的运行描述。

Chef::Log.level = :debug

在您的食谱中,添加以下内容

require 'chef/log'
Chef::Log.level = :debug
...

您还可以使用堆栈设置中的 custom_json 属性来控制日志。

{"opsworks":{"chef_log_level":"debug"}}

以上打开了 chef 和 opsworks 的调试,但尚未显示您可能使用 bash 或其他脚本运行的命令的输出。

于 2015-03-24T22:19:44.663 回答
3

尝试运行:

cd /opt/aws/opsworks/current
bundle exec chef-solo -l debug -c conf/solo.rb -j /var/lib/aws/opsworks/chef/XXX.json
于 2013-09-20T08:17:04.647 回答