0

我对 Chef 和 A​​WS 都很陌生,但我正在尝试使用两者。我尝试使用以下命令引导 AWS 实例:

knife ec2 server create -I ami-62fd7152 -x ubuntu -f t1.micro --region 'us-west-2'

但是,当我检查我的 ec2 服务器列表时,该服务器未列出,尽管它已列在我的节点列表中。SSH 进入我的实例并检查我的厨师日志会产生以下信息,但我不确定如何处理这些信息。我究竟做错了什么?

~$ sudo chef-client -l
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/mixlib-cli-1.3.0/lib/mixlib/cli.rb:226:in `parse_options': missing argument: -l (OptionParser::MissingArgument)
from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/application.rb:78:in `configure_chef'
from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/application.rb:65:in `reconfigure'
from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/application/client.rb:217:in `reconfigure'
from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/application.rb:71:in `run'
from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/bin/chef-client:26:in `<top (required)>'
from /usr/bin/chef-client:23:in `load'
from /usr/bin/chef-client:23:in `<main>'
4

1 回答 1

1

唯一让我大吃一惊的是您需要指定您正在使用的 AWS 密钥对。当您通过 AWS 控制台创建新服务器时,AWS 会提示您创建一个。当您的 ec2 实例启动时,Amazon 将此密钥放在 authorized_key 文件中,以便您可以 ssh 进入实例。Knife 需要知道使用什么密钥,以便它可以使用相同的密钥 ssh 进入实例并引导它。您可以使用密码而不是密钥对,但我不建议这样做。出于安全原因,这通常被认为是不好的做法。

ssh 密钥的选项是“--ssh-key”或“-S”。不过,您不会将路径传递到您在本地拥有该密钥的位置。相反,只需传递您在 AWS 控制台中给它的名称。希望这可以帮助。

于 2013-04-01T14:43:56.267 回答