如何在厨师食谱中记录错误消息
How to log error messages in chef recipe
如何在食谱中记录错误消息。
对于 EX:我的食谱是
#
# Cookbook:: mkdir
# Recipe:: default
#
# Copyright:: 2018, The Authors, All Rights Reserved.
bash 'extract_module' do
code <<-EOH
mkdir -p /tmp/#{node['main']['directory']}
EOH
Chef::Log.info "Directory Created"
#puts "Directory created"
end
实际创建的日志文件在哪里??? --> Chef::Log.info "Directory Created"
如果
我如何控制我的食谱停止
mkdir -p /tmp/#{node['main']['directory']}
居然失败了??
谢谢
该资源将无法收敛 bash 具有非零退出代码,因此简单的方法是将 set -e
添加到您的脚本中。或者改用目录资源。
我相信这取决于您的操作系统。
对于 windows 机器,您的日志很可能位于目录 C:\chef\log
。
对于 linux 机器,它应该默认为 /etc/chef/log
您应该找到名称类似于 client-run_20181024124200.log
的日志文件。
此日志文件将包含您的 Chef::Log.info "Directory Created"
我想指出的是,您实际上可以指定要将日志写入的位置。为此,首先在 windows 机器上导航并打开文件 C:\chef\client.rb
或在 linux 机器上打开 /etc/chef/client.rb
。
您现在可以将行 log_location STDOUT
更改为您自己的目录,如
log_location C:\logs\cheflogs
这是在尝试找出 Chef Workstation 存储日志文件的位置时搜索发现的问题(未能收敛时的错误是无用的 Please examine the log file for a detailed cause of failure
但没有任何指示该文件应该在哪里.
Google 确定答案是 /var/log/opscode
,但事实并非如此。
最终,我在 https://docs.chef.io/workstation/config/#location 找到了答案。这显示了如何配置,更重要的是,默认值为 "$USERHOME/.chef-workstation/logs/default.log"
如何在食谱中记录错误消息。
对于 EX:我的食谱是
#
# Cookbook:: mkdir
# Recipe:: default
#
# Copyright:: 2018, The Authors, All Rights Reserved.
bash 'extract_module' do
code <<-EOH
mkdir -p /tmp/#{node['main']['directory']}
EOH
Chef::Log.info "Directory Created"
#puts "Directory created"
end
实际创建的日志文件在哪里??? --> Chef::Log.info "Directory Created"
如果
我如何控制我的食谱停止mkdir -p /tmp/#{node['main']['directory']}
居然失败了??
谢谢
该资源将无法收敛 bash 具有非零退出代码,因此简单的方法是将 set -e
添加到您的脚本中。或者改用目录资源。
我相信这取决于您的操作系统。
对于 windows 机器,您的日志很可能位于目录 C:\chef\log
。
对于 linux 机器,它应该默认为 /etc/chef/log
您应该找到名称类似于 client-run_20181024124200.log
的日志文件。
此日志文件将包含您的 Chef::Log.info "Directory Created"
我想指出的是,您实际上可以指定要将日志写入的位置。为此,首先在 windows 机器上导航并打开文件 C:\chef\client.rb
或在 linux 机器上打开 /etc/chef/client.rb
。
您现在可以将行 log_location STDOUT
更改为您自己的目录,如
log_location C:\logs\cheflogs
这是在尝试找出 Chef Workstation 存储日志文件的位置时搜索发现的问题(未能收敛时的错误是无用的 Please examine the log file for a detailed cause of failure
但没有任何指示该文件应该在哪里.
Google 确定答案是 /var/log/opscode
,但事实并非如此。
最终,我在 https://docs.chef.io/workstation/config/#location 找到了答案。这显示了如何配置,更重要的是,默认值为 "$USERHOME/.chef-workstation/logs/default.log"