Ansible无法找到python模块

使用 ansible 在多个虚拟机上运行 docker swarm。

ansible 无法docker在远程机器上找到 python 模块,即使它已经安装。


运行剧本 sudo ansible-playbook -i inv2.py /etc/ansible/playbook.yml


错误信息:


fatal: [10.212.137.216]: FAILED! => {"changed": false, "msg": "Failed to import docker or docker-py - No module named requests.exceptions. Try `pip install docker` or `pip install docker-py` (Python 2.6)"}

模块列表:


ubuntu@donald0:~$ pip list

DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.

...

cryptography (2.1.4)

docker (3.7.1)

docker-pycreds (0.4.0)

...


慕田峪4524236
浏览 383回答 3
3回答

万千封印

出现此错误是因为 Ansible 正在搜索您正在使用的 Python 模块的不同路径。当您使用官方包安装 Ansible 时,它使用 Python 2.7,因此当您运行 Ansible 时,它会搜索 python 2 模块。有一些方法可以解决这个问题:- 添加ansible_python_interpreter设置正确 Python 路径的选项:像下面的例子:ansible-playbook -i inventory playbook.yml -e 'ansible_python_interpreter=/usr/bin/python3'- 使用 pip3 重新安装 ansible:使用以下命令:sudo apt remove ansiblepip3 install ansible我认为第二种选择是避免未来错误的最佳方法。阅读有关 Ansible 的 Python 3 支持的更多信息:Ansible - Python 3 支持。

慕勒3428872

以下配置对我有用。它安装了 docker、python 和 docker-compose 最新版本---- name: Checking docker on latest version  apt: name=docker.io state=latest- name: Checking python  apt: name=python state=latest- name: Checking docker-compose on latest version  apt: name=docker-compose state=latest

梦里花落0921

FWIW,我遇到了这个问题,因为下面的目录/usr/lib64/python2.7是可读和可执行的root。我跑了之后chmod -R go+rX /usr/lib{,64}问题就解决了。root的umask是077,因此,该问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python