代码之家  ›  专栏  ›  技术社区  ›  anish anil

如何在厨师配方中记录错误消息

  •  0
  • anish anil  · 技术社区  · 6 年前

    如何在配方中记录错误消息。

    我的食谱是

    #
    # 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
    

    实际创建的日志文件在哪里--&燃气轮机;厨师长:日志。信息“已创建目录”

    如果出现以下情况,我如何控制配方以停止

    mkdir -p /tmp/#{node['main']['directory']}
    

    实际上失败了??

    非常感谢。

    3 回复  |  直到 6 年前
        1
  •  0
  •   draysams    6 年前

    我相信这取决于你的操作系统。

    对于windows计算机,您的日志很可能位于 C:\chef\log

    对于linux机器,它应该默认为 /etc/chef/log

    您应该找到名称如下的日志文件 client-run_20181024124200.log 。 此日志文件将包含 Chef::Log.info "Directory Created"

    我想指出的是,您实际上可以指定日志的写入位置。要执行此操作,请首先导航到并打开该文件 C:\chef\client.rb 在windows计算机上或 /etc/chef/client.rb 在linux机箱上。

    您现在可以更改线路 log_location STDOUT 到您自己的目录,如
    log_location C:\logs\cheflogs

        2
  •  0
  •   coderanger    6 年前

    由于bash的converge具有非零退出代码,因此该资源将失败,因此简单的方法是添加 set -e 到您的脚本。或者改用目录资源。

        3
  •  0
  •   nachbar    2 年前

    这是一个搜索在试图找出Chef Workstation将日志文件存储在何处时发现的问题(无法收敛时的错误是没有帮助的 Please examine the log file for a detailed cause of failure 但没有任何文件应该在哪里的指示。

    谷歌确信答案是 /var/log/opscode ,但事实并非如此。

    最终,我在 https://docs.chef.io/workstation/config/#location 。这显示了如何配置,更重要的是,默认值为 "$USERHOME/.chef-workstation/logs/default.log"