为了账号安全,请及时绑定邮箱和手机立即绑定

Ansible无法找到python模块

Ansible无法找到python模块

慕田峪4524236 2021-12-17 16:36:23
使用 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 listDEPRECATION: 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)...
查看完整描述

3 回答

?
万千封印

TA贡献1891条经验 获得超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 ansible

pip3 install ansible

我认为第二种选择是避免未来错误的最佳方法。


阅读有关 Ansible 的 Python 3 支持的更多信息:Ansible - Python 3 支持。


查看完整回答
反对 回复 2021-12-17
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

以下配置对我有用。它安装了 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


查看完整回答
反对 回复 2021-12-17
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

FWIW,我遇到了这个问题,因为下面的目录/usr/lib64/python2.7是可读和可执行的root。我跑了之后chmod -R go+rX /usr/lib{,64}问题就解决了。rootumask077,因此,该问题。


查看完整回答
反对 回复 2021-12-17
  • 3 回答
  • 0 关注
  • 382 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信