如何让Ansible Tower(AAP)识别cloud.common Ansible集合?
解决Ansible Tower(AAP)无法识别cloud.common集合的问题
针对离线环境下Tower无法识别cloud.common集合的情况,可按以下步骤排查和解决:
检查集合目录结构与权限
- 确认
/usr/share/ansible/collections/ansible_collections/cloud/common目录存在,且内部包含标准集合结构(如plugins/lookup、plugins/plugin_utils等子目录及对应文件)。 - 确保Tower运行用户(通常为
awx)拥有该集合目录的读取权限:chown -R awx:awx /usr/share/ansible/collections/ansible_collections/cloud chmod -R 0755 /usr/share/ansible/collections/ansible_collections/cloud
- 确认
配置Tower的集合路径
- 登录Tower控制台,进入Settings -> Ansible Settings,找到Collections Path选项,将
/usr/share/ansible/collections添加到路径列表中并保存。 - 若需针对单个Job Template配置,可在Job Template的Extra Variables中添加:
ansible_collections_path: "/usr/share/ansible/collections"
- 登录Tower控制台,进入Settings -> Ansible Settings,找到Collections Path选项,将
验证集合识别状态
- 创建测试Job Template,执行命令
ansible-galaxy collection list,检查输出中是否包含cloud.common。 - 编写简单测试playbook验证lookup功能:
运行该任务,确认是否仍出现模块未找到错误。- name: Verify cloud.common lookup hosts: localhost tasks: - name: Fetch datastore moid debug: msg: "{{ lookup('cloud.common.vmware_datastore_moid', datastore_name='your_datastore', hostname='vcenter_host', username='your_user', password='your_pass', validate_certs=False) }}"
- 创建测试Job Template,执行命令
检查版本兼容性
- 在Tower中执行
ansible --version查看当前Ansible版本。 - 确认已安装的cloud.common集合版本与该Ansible版本兼容(部分新版本cloud.common要求Ansible 2.12及以上),若不兼容,需更换匹配的集合版本重新安装。
- 在Tower中执行
内容的提问来源于stack exchange,提问作者bnolf
相关产品推荐
相关产品推荐

