OSX,10.9.2:
$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
$ knife -v
Chef: 11.10.4
当我运行时:
$ knife ec2 server list
我得到:
FATAL: Cannot find sub command for: 'ec2 server list'
The ec2 commands were moved to plugins in Chef 0.10
You can install the plugin with `(sudo) gem install knife-ec2
我已经安装了gem:
sudo gem install knife-ec2
运行没有错误。和gem列表显示它已安装:
$ sudo gem list|grep knife-ec2
knife-ec2 (0.8.0)
该gem似乎已正确安装在这里:
ls /Library/Ruby/Gems/2.0.0/gems/knife-ec2-0.8.0/
...
/usr/bin/knife本身运行良好。很可能它与刀在哪里寻找插件有关,但是目前尚不清楚该怎么做。
最佳答案
在我已经通过gem安装了Chef/knife-knife-ec2之后,当我安装了Chefdk时,我遇到了这个问题或类似的问题(如果您想知道的话,尝试使vagrant-berkshelf正常工作)。
我发现,当安装chefdk时,路径中的刀二进制文件将使用嵌入式厨师 ruby ,而不是系统 ruby ,因此您必须将 gem 安装到厨师嵌入式 ruby 中。
在OSX上,我这样做是这样的:
/opt/chefdk/embedded/bin/gem install knife-ec2
编辑:看起来已经有一个厨师命令来执行此操作:
chef gem install knife-ec2
关于chef-infra - 如何安装knife-ec2插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22620745/