Ansible ec2_instance_facts 抱怨 boto3 未安装(但已安装)

Ansible ec2_instance_facts 抱怨 boto3 未安装(但已安装)

尝试使用 Ansible 通过如下简单的剧本检索 AWS 元数据:

    ---
    - hosts: tag_mytagname_mytagvalue
      tasks:
        - ec2_instance_facts
        - ping

我收到有关 boto3 缺失的错误(尽管已经安装)

任务 [ec2_instance_facts] **************************************************************************************************************** 致命:[ip-10-186-27-189.ec2.internal]:失败! => {“changed”: false,“msg”: “此模块需要 boto3”}

答案1

这是因为 Ansible 正在尝试检索 EC2 事实在远程主机上(因为这就是我告诉它的,哦!)

需要使用本地主机检索事实:

---
- hosts: localhost
  tasks:
    - ec2_instance_facts:

感谢这个 reddit 提供的解决方案(但在 SF 上发布更有用):https://www.reddit.com/r/ansible/comments/8p4l9f/awsec2_group_facts_error_boto3_required_for_this/

答案2

在类似情况下,我收到了完全相同的错误消息——当使用模块时ec2_instance_factsconnection: local作为将远程任务与本地任务混合的更大任务列表的一部分):

---
- ec2_instance_facts:
  connection: local

delegate_to: localhost在这种情况下,解决方案是使用connection: local

---
- ec2_instance_facts:
  delegate_to: localhost

相关内容