无法使用盐云配置 AWS 服务器:密钥对不存在

Unable to provision AWS server with salt-cloud: Key pair does not exist

我正在关注 salt-cloud AWS guide 并且遇到一条我认为不清楚的错误消息。错误是:

$ sudo salt-cloud -p ubuntu_aws test-vm                        
[INFO    ] salt-cloud starting
[INFO    ] Creating Cloud VM test-vm in ap-southeast-1
[ERROR   ] EC2 Response Status Code and Error: [400 400 Client Error: Bad Request] {'Errors': {'Error': {'Message': "The key pair 'testkey' does not exist", 'Code': 'InvalidKeyPair.NotFound'}}, 'RequestID': '******************************'}
[ERROR   ] There was a profile error: 'str' object does not support item assignment

我了解到最后一部分是一个 python 错误,我认为这可能表明我的配置中存在语法错误,但我找不到任何问题。

ubuntu_aws 配置

ubuntu_aws:
    provider: aws
    image: ami-e2f1c1b0
    size: Micro Instance
    ssh_username: ec2-user

提供商配置

private_key: /path/to/testkey.pem
keyname: testkey
securitygroup: default

我还注意到有 2 个默认组,我都无法删除它们:

当我访问 https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#KeyPairs:sort=keyName 时,我可以看到密钥确实在 us-east-1 上。

我的 testkey.pem 密钥具有 -rw-------- 权限。

我仍在学习使用 salt-cloudAWS 我正在努力确定这是否是我的问题AWS 配置或我的 Salt 配置。任何指导都会有所帮助。

您的配置正在尝试在 ap-southeast-1 区域(即新加坡)中创建虚拟机。您的密钥存在于 us-east-1 区域。

所以您要么需要将您的密钥添加到新加坡区域,要么将您的虚拟机配置为在 us-east-1 区域中创建。