我正在尝试使用 knife ec2 server create 首次自动启动 ec2 实例,但是我得到了"ERROR: Excon::Errors::BadRequest: Expected(200) <=> Actual(400 Bad Request)"
。
使用时knife ec2 server list
会返回现有服务器列表,这意味着中的 AWS ID.chef/knife.rb
是正确的。
我使用以下方法检查了 AMI IDUbuntu 的 AMI 查找器,并尝试了所有其他参数的不同组合,所以无法找出问题所在。
我正在使用:
knife ec2 server create \
-r "role[memcached]" -I ami-d0f89fb9 -f m1.small \
-i mysshkey.pem --ssh-user newuser \
--region us-east-1b -Z us-east-1b
(有一个名为的 Chef 角色memcached
,本地目录中有一个名为的文件mysshkey.pem
)
环境:Win7、Git 1.8.1.msysgit.1、Chef/Knife 11.4.4。稍后我将尝试从 Linux 工作站执行相同操作,以便确定问题出在环境、参数还是 AWS 凭证上。
知道如何解决 knife ec2 脚本问题吗?
答案1
我终于找到了问题所在。
该参数-i <AWS_SSH_ID>
不用于指定 SSH 密钥本身,而是用于指定安全姓名在 AWS 中创建凭证时使用的 SSH 对密钥。
调整后,knife ec2 create
就开始正常工作了。
答案2
us-east-1b
不是有效的 EC2 区域。请尝试us-east-1
。