Ansible 动态清单:检索 ec2 清单时出现身份验证错误
Ansible dynamic inventory: Authentication error retrieving ec2 inventory
我正在使用 Ansible 的动态清单功能通过以下方式连接到 AWS 帐户中的 ec2 实例:
AWS_PROFILE=personal ansible-playbook cifarm.yml -C
我已经复制了inventory目录下的https://raw.github.com/ansible/ansible/devel/contrib/inventory/ec2.py into and https://raw.github.com/ansible/ansible/devel/contrib/inventory/ec2.ini文件。
在运行宁AWS_PROFILE=personal ansible-playbook cifarm.yml -C
,它抛出以下错误:
输出:
错误:清单脚本 (inventory/ec2.py) 出现执行错误:错误:“检索 ec2 清单时出现身份验证错误。
- AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量找到但可能不正确
- 在“~/.boto、~/.aws/credentials”找到 Boto 配置,但包含的凭据可能不正确”,同时:获取 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
它返回同样的错误。我看到 post 建议更新机器上的时间,我正在 运行 编写剧本。所以我 运行 ntpdate -u
但问题依然存在。我不知道是什么原因。
非常感谢任何 help/suggestions。
我设法解决了这个问题。在这里解释一下,以便其他人受益。当我为 AWS_PROFILE= personal 生成 aws 凭据时,我在 ~/.aws/credentials 中有以下环境变量的值:
- aws_access_key_id
- aws_secret_access_key
- aws_session_token。
但是,如果您查看 ec2.py,它需要名为 aws_security_token 的变量值。所以我所做的只是将 ~/.aws/credentials 中的变量名从 aws_session_token 更改为 aws_security_token。
瞧。工作正常。
我正在使用 Ansible 的动态清单功能通过以下方式连接到 AWS 帐户中的 ec2 实例:
AWS_PROFILE=personal ansible-playbook cifarm.yml -C
我已经复制了inventory目录下的https://raw.github.com/ansible/ansible/devel/contrib/inventory/ec2.py into and https://raw.github.com/ansible/ansible/devel/contrib/inventory/ec2.ini文件。
在运行宁AWS_PROFILE=personal ansible-playbook cifarm.yml -C
,它抛出以下错误:
输出: 错误:清单脚本 (inventory/ec2.py) 出现执行错误:错误:“检索 ec2 清单时出现身份验证错误。 - AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量找到但可能不正确 - 在“~/.boto、~/.aws/credentials”找到 Boto 配置,但包含的凭据可能不正确”,同时:获取 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
它返回同样的错误。我看到 post 建议更新机器上的时间,我正在 运行 编写剧本。所以我 运行 ntpdate -u
但问题依然存在。我不知道是什么原因。 非常感谢任何 help/suggestions。
我设法解决了这个问题。在这里解释一下,以便其他人受益。当我为 AWS_PROFILE= personal 生成 aws 凭据时,我在 ~/.aws/credentials 中有以下环境变量的值:
- aws_access_key_id
- aws_secret_access_key
- aws_session_token。
但是,如果您查看 ec2.py,它需要名为 aws_security_token 的变量值。所以我所做的只是将 ~/.aws/credentials 中的变量名从 aws_session_token 更改为 aws_security_token。
瞧。工作正常。