![chef knife ec2 服务器创建:启动新的 ec2 服务器时出错](https://linux22.com/image/611860/chef%20knife%20ec2%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%9B%E5%BB%BA%EF%BC%9A%E5%90%AF%E5%8A%A8%E6%96%B0%E7%9A%84%20ec2%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%B6%E5%87%BA%E9%94%99.png)
我正在尝试使用 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
。