Chef infra 厨师长-罐头盒';t将Chef::Node::livitmash转换为字符串

Chef infra 厨师长-罐头盒';t将Chef::Node::livitmash转换为字符串,chef-infra,Chef Infra,在节点上安装Chef Development Kit后,我在该节点的引导过程中出错: Chef Development Kit Version: 0.15.16 chef-client version: 12.11.18 delivery version: master (444effdf9c81908795e88156c43b5f) berks version: 4.3.5 kitchen version: 1.10.0 主厨服务员11 有了chef client 11,烹饪书就可以毫无问题

在节点上安装Chef Development Kit后,我在该节点的引导过程中出错:

Chef Development Kit Version: 0.15.16
chef-client version: 12.11.18
delivery version: master (444effdf9c81908795e88156c43b5f)
berks version: 4.3.5
kitchen version: 1.10.0
主厨服务员11

有了chef client 11,烹饪书就可以毫无问题地运行了

default[:packages] = %w( sysstat screen mlocate telnet nmap openssl vim )
知道怎么修吗


谢谢

您使
节点['packages']
成为散列而不是数组。您希望改为使用以下代码:

node['packages'].each do |name, something|
  package name do
    action :upgrade
  end
end

您可能还应该检查数据中的
内容。可能只是一个布尔值,也可能是一个包版本,这取决于您在其他地方的设置方式。

您将
节点['packages']
设置为哈希而不是数组。您希望改为使用以下代码:

node['packages'].each do |name, something|
  package name do
    action :upgrade
  end
end
%w[ sysstat screen mlocate telnet nmap openssl vim ].each do |pkg|
  package pkg
end

您可能还应该检查数据中的
内容。可能只是一个布尔值,也可能是一个包版本,这取决于您在其他地方的设置方式。

谢谢,我将尝试修复它,您知道为什么它与chef client 11一起工作吗?有些东西的用途是什么?我会添加一些日志:
Chef::Log.debug(“name={name.inspect}”)
来查看循环中得到的值。谢谢,我会尝试修复它,你知道为什么它与Chef client 11一起工作吗?有些东西的用途是什么?我会添加一些日志:
Chef::Log.debug(“name={name.inspect}”)
来查看在循环中得到的值是什么。
%w[ sysstat screen mlocate telnet nmap openssl vim ].each do |pkg|
  package pkg
end