我正在使用动态库存
运行ansible。当使用 aws configure 命令设置 aws cli 时,具有动态 list 的 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>
最佳答案
我也遇到了这个问题,最后解决了;问题是我机器上的时钟偏差了几分钟。正确设置时间解决了问题。
一路上我了解到 aws cli 使用 boto3,而 ec2.py 使用 boto。看来 boto3 在身份验证方面的工作方式略有不同,因为像 @drishti 一样,即使 ec2.py 不工作,CLI 也可以为我工作。
关于python - Ansible 不从 ~/.aws/credentials 读取凭证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39818098/