首页 文章

Ansible动态库存:检索ec2库存的身份验证错误

提问于
浏览
2

我使用Ansible的动态库存功能连接到AWS账户中的ec2实例,使用以下内容:

AWS_PROFILE=personal ansible-playbook cifarm.yml -C

我已将https://raw.github.com/ansible/ansible/devel/contrib/inventory/ec2.py复制到inventory目录下的https://raw.github.com/ansible/ansible/devel/contrib/inventory/ec2.ini文件中 .

在运行 AWS_PROFILE=personal ansible-playbook cifarm.yml -C 时,它会抛出以下错误:

输出:错误:库存脚本(inventory / ec2.py)有一个执行错误:ERROR:“验证错误检索ec2库存 . - 找到AWS_ECCESS_KEY_ID和AWS_SECRET_ACCESS_KEY环境变量但可能不正确 - 在'〜/ .boto找到Boto配置, 〜/ .aws / credentials',但包含的凭据可能不正确“,而:获取EC2实例

我正在从MAC OS运行剧本 . 请注意,我能够成功运行以下:

aws ec2 describe-instances --page-size 5 --profile personal

这证明凭据是正确的,并且我已导出AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY .

我试图执行inventory / ec2.py文件,如下所示:

./ec2.py --list

它又回来了同样的错误 . 我看到一个帖子,建议更新机器上的时间,我正在运行剧本 . 所以我运行了ntpdate -u

但问题仍然存在 . 我不知道是什么原因 . 非常感谢任何帮助/建议 .

1 回答

  • 2

    我设法解决了这个问题 . 在这里解释它让其他人受益 . 当我为AWS_PROFILE = personal生成aws凭据时,我在〜/ .aws / credentials中有以下环境变量的值:

    • aws_access_key_id

    • aws_secret_access_key

    • aws_session_token .

    但是,如果你查看ec2.py,它需要一个名为aws_security_token的变量值 . 所以我所做的就是将变量名从aws_session_token更改为〜/ .aws / credentials中的aws_security_token .

    瞧 . 工作良好 .

相关问题