我正在使用dynamic inventory
运行ansible。使用aws configure命令设置aws cli
时,动态invetory的ansible命令正常运行。但我希望动态广告资源可以使用多个配置文件,因此我在~/.aws/credentials
[personal]
aws_access_key_id = XXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXX
[default]
aws_access_key_id = XXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXX
ansible没有获取这些凭据,并且在运行./ec2.py --list
时它会给出错误:
Looks like AWS is down again:
EC2ResponseError: 401 Unauthorized
<?xml version="1.0" encoding="UTF-8"?>
<Response><Errors><Error><Code>AuthFailure</Code><Message>Authorization header or parameters are not formatted correctly.</Message></Error></Errors><RequestID>349d5311-54db-4e79-9bbc-2d60b9f15da5</RequestID></Response>
答案 0 :(得分:0)
您是否尝试过将--profile PROFILE开关添加到ec2.py,如下所示。
SELECT object_name,
counter_name,
cntr_value AS [value]
FROM sys.dm_os_performance_counters
WHERE LTRIM(RTRIM(object_name)) = 'SQLServer:Buffer Manager'
AND LTRIM(RTRIM(counter_name)) = 'Page life expectancy' ;
答案 1 :(得分:0)
在@ uptime365的回答之后,这很可能不是Ansible / ec2.py问题。这是我的故障排除步骤:
awscli
与这些凭据一起使用吗?aws ec2 describe-instances --page-size 5
aws ec2 describe-instances --page-size 5 --profile personal
awscli
与手动包含的凭据一起使用吗?请注意,由于您指定了密钥,因此无需使用profile
。
AWS_ACCESS_KEY_ID="AKIA.." AWS_SECRET_ACCESS_KEY=".." aws ec2 describe-instances --page-size 5
如果它抱怨该地区,请添加AWS_DEFAULT_REGION="us-east-1"
或您选择的地区。
您的访问密钥或密码存在问题。每个字符有多少个?密钥应为20个字符,全部为大写字母和数字。秘密是40个字符,上/下/数字/标点符号。
答案 2 :(得分:0)
我也遇到了这个问题,并最终解决了它;问题是我的机器上的时钟已经漂移了几分钟。正确设置时间可以解决问题。
一路上我了解到aws cli使用boto3,而ec2.py使用boto。似乎boto3在身份验证方面的工作方式略有不同,因为就像@drishti一样,即使不是ec2.py,CLI也能为我工作。