我正在使用Ansible的动态库存特性连接到AWS帐户中的ec2实例,使用以下方法:
AWS_PROFILE=personal ansible-playbook cifarm.yml -C我已将https://raw.github.com/ansible/ansible/devel/contrib/inventory/ec2.py复制到库存目录下的和https://raw.github.com/ansible/ansible/devel/contrib/inventory/ec2.ini文件中。
在运行AWS_PROFILE=personal ansible-playbook cifarm.yml -C时,它会抛出以下错误:
输出: inventory脚本( Inventory /ec2.py)有一个执行错误:错误:“身份验证错误检索ec2库存。- AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY环境vars找到但可能不正确- Boto吐露在'~/.boto,~/..aws/凭据‘,但包含的凭据可能不正确”,同时:获取EC2实例
我正在运行一个MAC操作系统的游戏手册。请注意,我能够成功地运行在下面:
aws ec2 describe-instances --page-size 5 --profile personal这表明凭证是正确的,而且我还导出了AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY。
我试图按以下方式执行存货/ec2.py文件:
./ec2.py --list结果也有同样的错误。我看到一条帖子,有人建议我更新机器上的时间,我正在运行剧本。所以我运行了ntpdate -u
但这个问题仍然存在。我不知道原因是什么。任何帮助/建议都是非常感谢的。
发布于 2017-02-27 12:01:49
我设法解决了这个问题。在这里解释,让其他人从中受益。当我为AWS_PROFILE= personal生成aws凭据时,在~/.aws/凭据中有以下环境变量的值:
但是,如果您查看ec2.py,它需要名为aws_security_token的变量值。因此,我所做的就是在~/..aws/凭据中将变量名从aws_session_token更改为aws_security_token。
然后瞧。效果很好。
https://stackoverflow.com/questions/42442390
复制相似问题