可用于在多个虚拟机上运行docker swarm。
即使已安装,ansible也无法在远程计算机上找到python模块responseType: "arraybuffer",
。
运行剧本
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)"}
答案 0 :(得分:1)
发生此错误是因为Ansible正在搜索您正在使用的python模块的其他路径。
当您使用official package禁用Ansible时,它将使用python 2.7,因此,当您运行Ansible时,它将搜索python 2模块。
有很多解决方法:
ansible_python_interpreter
选项以设置正确的Python路径:类似于以下示例:
ansible-playbook -i inventory playbook.yml -e'ansible_python_interpreter=/usr/bin/python3'
使用以下命令:
sudo apt remove ansible
pip3 install ansible
详细了解有关Ansible对Python 3的支持:Ansible - Python 3 Support。
答案 1 :(得分:0)
确保docker-py没有与docker并行安装。如果是这种情况,请卸载docker-py并重新安装docker。有关更多详细信息,请参见上面@vladimir的要求链接。
以防万一,因为您没有提供剧本...:您是否100%确定docker命令在目标vm上运行?还是要从Ansible本地主机解决已安装的群?在后一种情况下,必须在运行ansible的计算机上安装pip docker模块。
答案 2 :(得分:0)
以下配置适用于我。它会安装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
答案 3 :(得分:0)
您的主机文件-/ etc / ansible / hosts中需要python解释器
ansible_python_interpreter=/usr/bin/python3
例如:
ubuntu@${ip} ansible_private_key_file=~/.ssh/${var.key_name}.pem ansible_python_interpreter=/usr/bin/python3
对于剧本,您需要Python模块和python docker-compose。工作示例为:
tasks:
- name: Install Docker
apt:
update_cache: yes
name: docker.io
- name: Install Docker-Compose
apt:
name: docker-compose
- name: Install Python Module
apt:
name: python3-pip
- name: Install Python Docker-Compose
pip:
name: docker-compose
答案 4 :(得分:0)
FWIW,我遇到了这个问题,因为/usr/lib64/python2.7
下的目录仅对root
可读和可执行。我运行chmod -R go+rX /usr/lib{,64}
之后,问题就消失了。 root
的{{1}}是umask
,因此出现了问题。