Ansible找不到python modu

2024-05-16 09:31:26 发布

您现在位置:Python中文网/ 问答频道 /正文

使用ansible在多个虚拟机上运行docker swarm。
ansible无法在远程计算机上找到python模块docker,即使它已经安装。在

运行剧本 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)"}

模块列表:

^{pr2}$

Tags: 模块installpipordockerpy远程计算机
3条回答

发生此错误是因为Ansible正在搜索您正在使用的python模块的不同路径。在

当您使用official package安装Ansible时,它使用python2.7,因此当您运行Ansible时,它将搜索python2模块。在

有很多方法可以解决这个问题:

  • 添加ansible_python_interpreter选项以设置正确的Python路径:

就像下面的例子:

ansible-playbook -i inventory playbook.yml -e'ansible_python_interpreter=/usr/bin/python3'
  • 使用可以在系统上运行的packager manager版本pip3重新安装ansible,我真的认为这是避免未来错误的最佳方法:

使用以下命令:

^{pr2}$

阅读更多关于Ansible的python3支持:Ansible - Python 3 Support。在

以下配置适用于我。它安装了docker,python和docker组成了最新版本

 -
- 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

确保docker py没有与docker并行安装。如果是这样,请卸载docker py并重新安装docker。有关更多详细信息,请参见上面的@vladimir需求链接。在

以防万一,因为你没有提供你的剧本。。。:您是否100%确定docker命令在目标虚拟机上运行?或者您是在ansible本地主机上为已安装的swarm寻址?在后一种情况下,pip docker模块必须安装在运行ansible的机器上。在

相关问题 更多 >