由于 docker-compose,Ansible AWX 安装失败

问题描述

我一直在尝试在 Redhat 7 上安装 AWX,但出现以下错误,我环顾四周,看到了一些卸载和安装 docker-compose 的建议,尝试了我能做的一切,但没有任何效果

    TASK [local_docker : Run migrations in task container] *************************************************************
fatal: [localhost]: Failed! => {"changed": true,"cmd": "docker-compose run --rm --service-ports task awx-manage migrate --no-input","delta": "0:00:00.003315","end": "2021-02-02 00:25:41.803121","msg": "non-zero return code","rc": 127,"start": "2021-02-02 00:25:41.799806","stderr": "/bin/sh: docker-compose: command not found","stderr_lines": ["/bin/sh: docker-compose: command not found"],"stdout": "","stdout_lines": []}

PLAY RECAP *********************************************************************************************************
localhost                  : ok=15   changed=3    unreachable=0    Failed=1    skipped=72   rescued=0    ignored=1 

这有点奇怪,我尝试运行 docker-compose -v 并工作,但是当我执行 sudo docker-compose 时它不起作用

$ docker-compose --version
docker-compose version 1.24.0,build 0aa59064
$ sudo docker-compose --version
sudo: docker-compose: command not found

你看到它在没有 sudo 的情况下工作正常,我不知道这是否与我在安装 awx 时看到的错误有关。

解决方法

移动你复制docker-compose二进制文件做/usr/local/bin,这个目录在普通用户和超级用户的路径上。

,

我在 stackoverflow 中查看了其他类似的问题,并为 Redhat 做了同样的事情,它奏效了 :)

以下是我解决此问题的方法:请参阅 Docker Compose 文档

sudo curl -L https://github.com/d`ocker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose`

sudo chmod +x /usr/local/bin/docker-compose

执行 curl 命令后,它会将 docker-compose 放入

/usr/local/bin

不在 PATH 上。要修复它,请创建一个符号链接:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

现在如果你这样做:docker-compose --version

你会看到 docker-compose 现在在 PATH 上

最后再次运行 ansible awx 安装,它会像对我一样工作:)

$ sudo ansible-playbook -i inventory install.yml 

这里是类似问题的参考 sudo: docker-compose: command not found

,

默认情况下 pip 会在 /usr/local/bin/ 安装 docker-compose,看来 Ansible 没有在路径中包含 /usr/local/bin/,我通过在 / 中创建一个链接实现了一个快速解决方法usr/bin/ 修复了 AWX 安装程序错误:

- name: Create symbolic link for docker-compose
  file:
    src: "/usr/local/bin/docker-compose"
    dest: "/usr/bin/docker-compose"
    state: link