AWX运行含community.docker模块的Playbook报错:找不到version模块支持代码
解决方案
1. 配置AWX自定义执行环境(Execution Environment)
AWX默认执行环境不含community.docker的完整依赖,需创建自定义环境来持久化安装:
- 编写
execution-environment.yml配置文件:
--- version: 1 build_arg_defaults: EE_BASE_IMAGE: 'quay.io/ansible/awx-ee:latest' dependencies: galaxy: collections: - name: community.docker version: latest python: - docker - docker-compose system: - gcc [platform:rpm] - python3-devel [platform:rpm]
- 用
ansible-builder构建镜像:
ansible-builder build -t my-custom-awx-ee:latest
- 将镜像推送到镜像仓库后,在AWX后台添加该执行环境,关联到你的Playbook模板。
2. 验证AWX任务容器的依赖与环境
手动进入AWX的task容器,检查依赖是否正确安装:
docker exec -it awx_task bash # 查看当前Python版本 python --version # 检查相关包状态 pip list | grep -E 'docker|community.docker'
若发现依赖缺失,可临时在容器内安装(重启后失效,建议用执行环境持久化):
pip install community.docker docker docker-compose
3. 检查版本兼容性
确认community.docker版本与AWX内置Ansible版本匹配:
- 在AWX界面
Settings->System或task容器内执行ansible --version查看Ansible版本 - 调整
execution-environment.yml中community.docker的版本为兼容版本,重新构建执行环境。
4. 确认Docker服务挂载(针对local连接场景)
若Playbook是本地连接执行Docker操作,需确保AWX的task容器挂载了Docker套接字:
- 检查容器挂载情况:
docker inspect awx_task | grep -A5 -B5 '/var/run/docker.sock'
- 若无挂载,修改AWX的
docker-compose.yml添加挂载后重启容器:
services: awx_task: volumes: - /var/run/docker.sock:/var/run/docker.sock
内容的提问来源于stack exchange,提问作者kbn
相关产品推荐
相关产品推荐

