Sunday, October 6, 2013

FATAL: Cannot find sub command for: 'ec2'

I was trying to execute knife command to create ec2 server however i was getting error.


here is the command that i was executing:

$ knife ec2 server create -G default -I ami-7000f019 -f m1.small   -S java-quick-start -i ~/.ssh/java-quick-start.pem -x ubuntu   -r 'role[base],role[dbapp_database_master],role[dbapp],recipe[dbapp::db_bootstrap],role[dbapp_load_balancer]'

this is the error i was getting:

FATAL: Cannot find sub command for: 'ec2 server create -G default -I ami-7000f019 -f m1.small -S java-quick-start -i /home/pankaj/.ssh/java-quick-start.pem -x ubuntu -r role[base],role[dbapp_database_master],role[dbapp],recipe[dbapp::db_bootstrap],role[dbapp_load_balancer]'
The ec2 commands were moved to plugins in Chef 0.10
You can install the plugin with `(sudo) gem install knife-ec2


I continued getting this error even when i installed knife-ec2 using command

gem install knife-ec2

finally it worked when i executed following:

$ /opt/chef/embedded/bin/gem install knife-ec2

/opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763:in `initialize': No such file or directory - getaddrinfo (Errno::ENOENT)

I was trying to upload cookbooks from my workstation to hosted chef and thats when i was getting the error:

/opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763:in `initialize': No such file or directory - getaddrinfo (Errno::ENOENT)

command that i was executing was :

knife cookbook upload -a -VV

It worked fine when i executed following commands

sudo apt-get install ruby-dev

sudo knife cookbook upload -a -VV