如何在AWX中运行community.docker模块并解决模块未找到问题
解决AWX中找不到community.docker.docker_prune模块的问题
问题根源是AWX的执行环境默认未预装community.docker集合,而你的本地Ansible环境已经手动安装了该集合,因此本地能正常运行Playbook,AWX却报错。以下是几种可行的解决方法:
方法一:构建包含community.docker集合的自定义执行环境
这是最推荐的长期解决方案:
- 创建一个
Containerfile(或Dockerfile),基于AWX官方执行环境镜像扩展:
FROM quay.io/ansible/awx-ee:latest RUN ansible-galaxy collection install community.docker
- 构建镜像并推送到AWX可访问的镜像仓库(比如私有Harbor、Docker Hub):
podman build -t your-registry/awx-ee-docker:latest . podman push your-registry/awx-ee-docker:latest
- 在AWX控制台中,进入执行环境页面,点击添加,填写名称并输入刚才推送的镜像地址,保存新的执行环境。
- 编辑你的Job Template,在执行环境下拉菜单中选择这个自定义执行环境,重新运行任务即可。
方法二:在Playbook中临时安装集合
适合临时测试场景(需AWX执行节点能联网):
在Playbook的最开头添加一个任务,在AWX的控制节点(localhost)上安装集合:
- name: 安装community.docker集合 ansible.builtin.command: ansible-galaxy collection install community.docker delegate_to: localhost run_once: true
注意:此方法每次运行Playbook都会执行安装操作,长期使用建议用方法一。
方法三:通过AWX的Galaxy集成同步集合
- 在AWX控制台进入Collections页面,点击添加,填写
community.docker作为集合名称,保存。 - 点击同步按钮,等待集合同步完成。
- 确保你的执行环境配置了使用同步后的集合(部分AWX版本需结合自定义执行环境使用此方式)。
额外检查
- 确认模块名称拼写正确:
community.docker.docker_prune无拼写错误,避免因笔误导致找不到模块。
内容的提问来源于stack exchange,提问作者Shery
相关产品推荐
相关产品推荐

