如何安装knife-ec2插件?

时间:2014-03-24 21:15:30

标签: chef 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 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)

宝石似乎在这里正确安装:

ls /Library/Ruby/Gems/2.0.0/gems/knife-ec2-0.8.0/
...

/ usr / bin / knife本身运行正常。它很可能与刀寻找插件的地方有关,但该怎么办还不清楚。

4 个答案:

答案 0 :(得分:8)

我安装了chefdk之后遇到了这个或类似的问题,因为我已经通过宝石安装了厨师/刀/刀-ec2(如果你想知道的话,试图让vagrant-berkshelf工作)。 / p>

我发现在安装chefdk时,嵌入式厨师红宝石被路径中的二进制文件使用,而不是系统红宝石,因此您必须将宝石安装到厨师嵌入的红宝石中。

在OSX上,我这样做了:

/opt/chefdk/embedded/bin/gem install knife-ec2

编辑:看起来有一个厨师命令已经这样做了:

chef gem install knife-ec2

答案 1 :(得分:3)

尝试运行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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

Knife在厨师装置中使用了gem二进制文件。

解决方案: 所以你应该安装插件 / opt / chef / embedded / bin / gem install knife-ec2 / opt / chef / embedded / bin / gem install

享受:)...