使用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}$
发生此错误是因为Ansible正在搜索您正在使用的python模块的不同路径。在
当您使用official package安装Ansible时,它使用python2.7,因此当您运行Ansible时,它将搜索python2模块。在
有很多方法可以解决这个问题:
ansible_python_interpreter
选项以设置正确的Python路径:就像下面的例子:
使用以下命令:
^{pr2}$阅读更多关于Ansible的python3支持:Ansible - Python 3 Support。在
以下配置适用于我。它安装了docker,python和docker组成了最新版本
确保docker py没有与docker并行安装。如果是这样,请卸载docker py并重新安装docker。有关更多详细信息,请参见上面的@vladimir需求链接。在
以防万一,因为你没有提供你的剧本。。。:您是否100%确定docker命令在目标虚拟机上运行?或者您是在ansible本地主机上为已安装的swarm寻址?在后一种情况下,pip docker模块必须安装在运行ansible的机器上。在
相关问题 更多 >
编程相关推荐