与厨师引导EC2实例时出错“缺少参数:-l(OptionParser :: MissingArgument)”

时间:2013-04-01 05:06:20

标签: amazon-web-services chef bootstrapping

我对Chef和AWS都很陌生,但我正试图兼顾两者。我尝试使用以下内容引导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>'

1 个答案:

答案 0 :(得分:1)

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

ssh键的选项是'--ssh-key'或'-S'。您没有将路径传递到本地具有该键的位置。而只是在AWS控制台中传递您提供的名称。希望这会有所帮助。