Chef infra YAJL内部错误:尝试将非字符串对象用作键

Chef infra YAJL内部错误:尝试将非字符串对象用作键,chef-infra,Chef Infra,我目前在第一次引导时收到此错误。该错误发生在厨师通过显示成功消息而完成之前。这些食谱以前一直有效,我没有对它们做任何更改 所以我的问题是,如何修复这个错误?我发现自己有两个目录,每个目录都有一个不同的rvm gemset。Chef(刀节点删除命令)在其中一个中工作,但在另一个中返回错误: ffi yajl/json_gem已被弃用,这些monkeypatches将很快被删除 虽然这听起来不像是一个致命的错误,刀命令失败的消息 结果是如果我。。。 gem安装ffi yajl-版本1.2 gem

我目前在第一次引导时收到此错误。该错误发生在厨师通过显示成功消息而完成之前。这些食谱以前一直有效,我没有对它们做任何更改


所以我的问题是,如何修复这个错误?

我发现自己有两个目录,每个目录都有一个不同的rvm gemset。Chef(刀节点删除命令)在其中一个中工作,但在另一个中返回错误:

ffi yajl/json_gem已被弃用,这些monkeypatches将很快被删除

虽然这听起来不像是一个致命的错误,刀命令失败的消息

结果是如果我。。。

gem安装ffi yajl-版本1.2
gem unistall ffi yajl-第1.3.1节
... 我的问题消失了,刀子现在可以正常工作了


YMMV.

还有一个单独的解决方案,用于解决chef引导失败时出现的相同错误(如下所示!)

ffi yajl/json_gem已被弃用,这些monkeypatches将很快被删除


我在(amazon.erb)引导模板中的“gem install chef”命令之前插入了一个“gem install json”命令。

您的节点数据中出现了无效的json。检查您通过-jPlease adda传入的文件。你运行了什么命令?你看到了什么错误?Stacktraces?什么版本的厨师?可能是11.14.0中引入的ffi yajl错误,但无法从您的问题中分辨出来。