You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Ubuntu 22.04安装Ansible AWX执行安装Playbook时Docker Compose相关任务报错求助

Ubuntu 22.04安装Ansible AWX执行安装Playbook时Docker Compose相关任务报错求助

我正在Ubuntu 22.04机器上部署Ansible AWX,运行安装Playbook命令 ansible-playbook -i inventory install.yml 时,遇到了Docker Compose相关任务的报错,具体报错信息如下:

TASK [local_docker : Remove AWX containers before migrating postgres so that the old postgres container does not get used] ***
task path: /opt/awx-17.0.1/installer/roles/local_docker/tasks/compose.yml:39
redirecting (type: modules) ansible.builtin.docker_compose to community.docker.docker_compose
ESTABLISH LOCAL CONNECTION FOR USER: root
EXEC /bin/sh -c 'echo ~root && sleep 0'
EXEC /bin/sh -c '( umask 77 && mkdir -p "echo /root/.ansible/tmp"&& mkdir "echo /root/.ansible/tmp/ansible-tmp-1718545879.5251415-55622-50488307772286" && echo ansible-tmp-1718545879.5251415-55622-50488307772286="echo /root/.ansible/tmp/ansible-tmp-1718545879.5251415-55622-50488307772286"'

可能的解决思路

我之前也碰到过类似的问题,给你几个排查方向试试:

  • 检查Docker Compose模块和版本
    报错里提到了把ansible.builtin.docker_compose重定向到community.docker.docker_compose,说明你的Ansible环境可能缺失这个社区模块。可以先通过命令安装:

    ansible-galaxy collection install community.docker
    

    另外也要确认本地Docker Compose版本是否符合AWX 17.0.1的要求,AWX 17.x一般需要Docker Compose 1.29+,用docker-compose --version检查版本,过低的话就升级一下。

  • 手动清理旧容器和临时文件
    这个任务的目的是移除旧容器避免冲突,可能之前的AWX容器没正常清理。你可以手动执行清理命令:

    docker-compose -f /opt/awx-17.0.1/installer/roles/local_docker/files/docker-compose.yml down -v
    rm -rf /root/.ansible/tmp/*
    

    清理完成后再重新运行安装Playbook。

  • 检查Docker服务状态和权限
    先确认Docker服务是否正常运行:

    systemctl status docker
    

    如果没启动就执行systemctl start docker,并设置开机自启systemctl enable docker。另外虽然用root用户运行,但也要确认root能正常执行docker ps,确保Docker权限配置没问题。

  • 验证版本兼容性
    AWX 17.0.1发布时间较早,Ubuntu 22.04相对较新,可能存在兼容性差异。如果上面的方法都无效,可以试试换成和Ubuntu 22.04更兼容的AWX版本(比如20.x系列),或者仔细核对AWX官方文档的系统依赖要求,确认所有前置依赖都安装齐全。

备注:内容来源于stack exchange,提问作者menap

火山引擎 最新活动