Chef infra 如何安装刀-ec2插件?

Chef infra 如何安装刀-ec2插件?,chef-infra,knife,Chef Infra,Knife,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 i

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
$ sudo gem list|grep knife-ec2 
knife-ec2 (0.8.0)
运行没有错误。gem列表显示它已安装:

sudo gem install knife-ec2
$ 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/刀本身运行良好。这很可能与刀子在哪里寻找插件有关,但如何解决还不清楚

您正在将东西安装到您的ruby系统中(这是不明智的)。在本例中,您需要在执行
knife
命令之前使用
sudo

当您尝试运行
gem install knife
时,输出是什么
gem
在使用
sudo

您可以使用sudo运行刀:

sudo knife ec2 server list
或以当前用户身份安装gem:

gem install knife-ec2
如果后者不起作用,请使用RVM:

\curl -sSL https://get.rvm.io | bash
rvm install 2.0.0p247
gem install knife-ec2

在我已经通过gems安装了chef/knife/knife-ec2之后,当我安装chefdk时,我遇到了这个或类似的问题(如果你想知道的话,是为了让流浪汉工作)

我发现,在安装chefdk时,路径中的刀子二进制文件使用嵌入式chef-ruby,而不是系统ruby,因此必须将gems安装到chef-embedded-ruby

在OSX上,我是这样做的:

/opt/chefdk/embedded/bin/gem install knife-ec2
编辑:看起来已经有一个chef命令来执行此操作:

chef gem install knife-ec2
是的,这很棘手。。。 原因: 您的系统中有2个GEM二进制文件。一个是“rubygems in/bin/gem”,另一个是“chef in”/opt/chef/embedded/bin/gem”

刀子在chef安装中使用gem二进制文件

解决方案: 因此,您应该将插件安装为 /opt/chef/embedded/bin/gem安装刀-ec2 /opt/chef/embedded/bin/gem安装


享受:)

我有同样的问题,尝试了sudo和没有sudo的宝石和刀,但仍然得到相同的错误。没有sudo的gem不安装插件:~/workspace/chef repo/bin:(master)$gem安装刀-ec2取数:刀-ec2-0.8.0.gem(100%)错误:执行gem时。。。(Gem::FilePermissionError)您没有/Library/Ruby/Gems/2.0.0目录的写入权限。很酷,我在以下路径中找到Gem,/opt/chef/embedded/bin/Gem install knife-ec2I必须$sudo/opt/chef/embedded/bin/Gem install knife-ec2才能安装它