为什么在执行“run_list add”、“run_list remove”和“rackspace server delete”时会出现“未定义方法”异常?

为什么在执行“run_list add”、“run_list remove”和“rackspace server delete”时会出现“未定义方法”异常?

[最初将此帖发布到 opscode 论坛,未得到回复]

我正在测试免费托管的 chef-server 帐户,多个子命令因“意外错误”而失败。也许我的版本和服务器版本不兼容?

操作系统:Ubuntu 12.04LTS

Local Chef:10.12.0(通过 gem 安装)

本地 Ruby:1.8.7

此外,工作站机器已手动配置,但我一直在试验的客户端是使用 Rackspace 插件启动的(使用“knife rackspace server create…”)问题命令似乎在与主机 chef-server 通信时失败,但在它尝试修改客户端之前,所以我认为问题不在这里。通过“knife rackspace server create”启动的虚拟服务器可以正常启动,但使用 knife 删除它们会失败。

如果我在创建服务器时将配方添加到 run_list 中,该配方将正确添加到 run_list。如果我稍后尝试添加配方或删除用于初始化服务器的配方,这些命令将失败。

以下是一些相关命令的输出(带有堆栈跟踪):

https://gist.github.com/7100ada3fd6690113697

答案1

看看你的要点(顺便说一句,非常有帮助!)看起来 run_list 修改的语法可能略有偏差。

在一个示例中,您提供:

knife node run_list remove rs-chefdemo-03 init_noop -VV

这个错误没有什么帮助,同意。

我认为您应该使用的正确语法是:

knife node run_list remove rs-chefdemo-03 'recipe[init_noop]' -VV

这应该按照您期望的方式运行。

至于knife rackspace命令,我怀疑您使用了错误的键,如自述文件中所述:

根据服务器/实例 ID 删除当前配置的 Rackspace Cloud 帐户中的现有服务器。您可以通过输入“knife rackspace server list”找到实例 ID。

因此正确的语法应该是:

knife rackspace server delete 20950789 -VV

祝你好运!

相关内容