我遵循确切的语法,但在将角色添加到我的一个节点时看到了一些奇怪的行为
我正在运行以下命令,理想情况下应该添加角色 - webserver到do_node
knife node run_list add do_node 'role[webserver]'
但是这是返回的内容:
do_node:
run_list: recipe[roles]
show node命令也显示出错:
Run List: recipe[roles]
Roles:
我的工作站是Win7机器&使用托管厨师。多次尝试但同样的事情。尝试了详细的输出,并没有显示出很多!
答案 0 :(得分:9)
可能发生的是
role[webserver]
被解释为一个全球化,并且正在完成“角色”。您的厨师目录中的目录。因此,从刀的角度来看,你进入了:
knife node run_list add do_node roles
它转换为'配方[角色]'。通常单引号可以避免这种类型的结合,但我已经看到问题突然出现了mingw。您可以尝试添加与当前目录中的文件夹不匹配的角色来确认这是问题所在:
knife node run_list add do_node 'role[foo]'
引用原始命令的最佳方式取决于您的shell和终端设置,但您可以尝试以下操作:
knife node run_list add do_node '"role[webserver]"'
或(在运行列表项的外部上使用双引号)
knife node run_list add do_node "'role[webserver]'"
在Chef问题跟踪器中存在许多针对此的错误。这是一个:https://tickets.opscode.com/browse/CHEF-4277