![为什么在执行“run_list add”、“run_list remove”和“rackspace server delete”时会出现“未定义方法”异常?](https://linux22.com/image/588748/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8%E6%89%A7%E8%A1%8C%E2%80%9Crun_list%20add%E2%80%9D%E3%80%81%E2%80%9Crun_list%20remove%E2%80%9D%E5%92%8C%E2%80%9Crackspace%20server%20delete%E2%80%9D%E6%97%B6%E4%BC%9A%E5%87%BA%E7%8E%B0%E2%80%9C%E6%9C%AA%E5%AE%9A%E4%B9%89%E6%96%B9%E6%B3%95%E2%80%9D%E5%BC%82%E5%B8%B8%EF%BC%9F.png)
[最初将此帖发布到 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。如果我稍后尝试添加配方或删除用于初始化服务器的配方,这些命令将失败。
以下是一些相关命令的输出(带有堆栈跟踪):
答案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
祝你好运!