【问题标题】:Chef: How to debug chef cookbooks?厨师:如何调试厨师食谱?
【发布时间】:2024-08-07 11:25:01
【问题描述】:

我是 Chef 的新手,所以如果很明显,请保持温和。

我们正在使用 Chef 来获取特定节点(或实例)的所需状态。 Chef 的调试有点困难。所以我想的是一些方法如果我得到命令列表(或shell脚本powershellmsdeploy任何资源)在特定实例上执行,然后我可以手动运行它们并查看到底是什么问题。我假设在收敛步骤这需要完成,但我不知道如何。

有没有办法获取配置实例的命令列表?

【问题讨论】:

  • 无法获取执行的命令列表。

标签: chef-infra chef-recipe cookbook


【解决方案1】:

当 boostrap 插入 -VV 选项时。这将给出过程的详细报告

knife bootstrap IP -VV -x username -P passwd -r role[role_id]

我想这对你有帮助

【讨论】:

  • 我正在寻找一个可以看到所有 commandsscripts 等用于配置我的实例的地方
【解决方案2】:

您可以使用报告处理程序来收集更新的、失败的资源列表,并可以在每次运行时将其发送到您的邮件中。

【讨论】:

    【解决方案3】:

    也许你可以使用 gem "debugger" https://github.com/cldwalker/debugger,我使用这个 gem 来停止我想要的 ".rb" 文件,并查看当时任何变量的内部...... 你只需要安装 gem 做:

    gem install debugger.....
    

    然后在“.rb”文件中你需要放:

    require "debugger"
    

    并在您要停止的代码部分中,输入“调试器”一词(不带“):

    debugger
    

    但我不知道这是否是您正在寻找的解决方案.... 祝你好运!

    【讨论】:

    • 我会试试这个,但我想要的在厨师的世界里是不可能的。我就是这么理解的。
    【解决方案4】:

    要了解在开发过程中运行 chef-client 时发生了什么,您可以尝试使用 -l debug 选项运行 chef-client。这提供了每个资源在执行时的更多详细信息。

    【讨论】: