【问题标题】:Errors running cookbooks with chef-client使用厨师客户端运行食谱时出错
【发布时间】:2016-07-20 22:11:02
【问题描述】:

我正在尝试通过使用“chef-apply default.rb”(其中 default.rb 是食谱的默认食谱)使用 chef-client 运行食谱,但无论我使用什么食谱,我都会遇到相同的错误正在尝试。我做错了吗?是否有另一种方法来执行单个食谱?

我得到的错误是:

[2016-07-20T11:00:57+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2016-07-20T11:00:57+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2016-07-20T11:00:57+00:00] FATAL: NoMethodError: undefined method `[]' for nil:NilClass

【问题讨论】:

  • 是的,chef-apply 旨在运行单个食谱,而不是食谱。将 chef-solo 或 chef-zero 与 cookbook_path 和 runlist 参数一起使用。见learn.chef.io
  • 这就是我收到错误的原因吗?
  • 根据我的占卜技巧,因为您没有显示任何食谱代码,我会说您正在尝试访问 chef-apply 未加载的食谱属性文件中定义的 node['whatever'] 属性因为它的目标是只运行自包含的食谱。

标签: chef-infra chef-recipe cookbook


【解决方案1】:

正如 Tensibai 所提到的,chef-apply 用于培训,有时用于一次性管理脚本。它没有“食谱”的概念。可能的问题是 chef-apply 没有运行属性文件(因为它不能)所以配方代码中不存在预期的默认值。

tl;dr 停止使用chef-apply。你可能想要chef-solo

【讨论】:

  • 你的意思是零厨师,不是吗? ;-)(又名。Local Mode
  • 不,我的意思是chef-solo。现在我们已将独奏再次修复为 Correct™,我们将回到旧标签,因为它可以减少用户的困惑。
猜你喜欢
  • 2017-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多