Ary*_*a N 4 python pip ansible
使用 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)"}
Run Code Online (Sandbox Code Playgroud)
模块列表:
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)
...
Run Code Online (Sandbox Code Playgroud)
出现此错误是因为 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'
Run Code Online (Sandbox Code Playgroud)
- 使用 pip3 重新安装 ansible:
使用以下命令:
sudo apt remove ansible
pip3 install ansible
Run Code Online (Sandbox Code Playgroud)
我认为第二种选择是避免未来错误的最佳方法。
阅读有关 Ansible 的 Python 3 支持的更多信息:Ansible - Python 3 支持。
以下配置对我有用。它安装 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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13170 次 |
最近记录: |