即使安装它,Ansible也不能导入docker-py [英] Ansible cannot import docker-py even though it is installed
问题描述
我检查过此帖,然后按照两个答案都没有工作。我打开一个新的帖子部分是因为这一点,部分是因为我有一个稍微不同的错误,即使问题可能是一样的。
I checked this post and followed the fix in both answers and neither worked. I'm opening a new post partly because of that and partly because I'm getting a slightly different error even though the problem might be the same.
可以安装的主机: / p>
Ansible host:
$ ansible --version
ansible 2.1.0.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
目标客户端myserver: p>
Destination client myserver:
$ pip list | egrep 'six|docker|websocket_client'
docker-py (1.2.3)
six (1.10.0)
test.yml:
---
- hosts: myserver
remote_user: root
tasks:
- name: stop any running docker registries
docker_container:
name: registry
state: stopped
...
可解的服务器(ansible-playbook别名为ap):
Ansible server (ansible-playbook aliased to ap):
$ ap -vvvv test.yml
输出:
(可能是无关的输出,剪切):
(probably extraneous output, snipped):
fatal: [myserver]: FAILED! => {
"changed": false,
"failed": true,
"invocation": {
"module_args": {
"api_version": null,
"blkio_weight": null,
"cacert_path": null,
"capabilities": null,
"cert_path": null,
"command": null,
"cpu_period": null,
"cpu_quota": null,
"cpu_shares": null,
"cpuset_cpus": null,
"cpuset_mems": null,
"debug": false,
"detach": true,
"devices": null,
"dns_opts": null,
"dns_search_domains": null,
"dns_servers": null,
"docker_host": null,
"entrypoint": null,
"env": null,
"etc_hosts": null,
"exposed_ports": null,
"filter_logger": false,
"force_kill": false,
"groups": null,
"hostname": null,
"image": null,
"interactive": false,
"ipc_mode": null,
"keep_volumes": true,
"kernel_memory": null,
"key_path": null,
"kill_signal": null,
"labels": null,
"links": null,
"log_driver":
"json-file",
"log_options": null,
"mac_address": null,
"memory": "0",
"memory_reservation": null,
"memory_swap": null,
"memory_swappiness": null,
"name": "registry",
"network_mode": null,
"networks": null,
"oom_killer": null,
"paused": false,
"pid_mode": null,
"privileged": false,
"published_ports": null,
"pull": false,
"read_only": false,
"recreate": false,
"restart": false,
"restart_policy": null,
"restart_retries": 0,
"security_opts": null,
"shm_size": null,
"ssl_version": null,
"state": "stopped",
"stop_signal": null,
"stop_timeout": null,
"timeout": null,
"tls": null,
"tls_hostname": null,
"tls_verify": null,
"trust_image_content": false,
"tty": false,
"ulimits": null,
"user": null,
"uts": null,
"volume_driver": null,
"volumes": null,
"volumes_from": null
},
"module_name": "docker_container"
},
"msg":
(相关错误) :
无法导入docker-py - 无法导入名称NotFound。尝试点安装docker-py}
当我将docker-py模块降级到1.1.0时,我得到相同的错误我也试图chmod的目录,它没有区别:
I get the same error when I downgrade the docker-py module to 1.1.0 as per the first answer in the referenced post. I also tried to chmod the directories and it made no difference:
(/usr/lib/python2.7/site-packages) myserver$ ls -lad docker*
drwxr-xr-x. 6 root root 4096 Jul 4 10:57 docker/
drwxr-xr-x. 2 root root 4096 Jul 4 10:57 docker_py-1.2.3-py2.7.egg-info/
code> chmod -R go + rx docker * 。
from chmod -R go+rx docker*
.
有没有人看到这个?我尝试使用pip ansible模块要安装这些模块,然后手动删除它们,请在引用的帖子中手动重新安装它,我也使用2.1.0.0,你可以看到,这应该是解决这个问题。
Has anyone seen this before? I have tried using the pip ansible module to install the modules and then after removing them manually, reinstalled them manually as in the referenced post. I'm also using 2.1.0.0. as you can see, which was supposed to fix this issue.
推荐答案
这是因为新版本的python模块 docker
和 docker-py
那个可以使用的是不兼容的我不得不还原并明确指定以下版本的PIP软件包:
This is because new versions of python modules docker
and docker-py
that ansible uses are incompatible. I had to revert back and explicitly specify the following versions of PIP packages:
- docker:2.0.0
- docker-py:1.10.6
以下这些示例手册任务:
Sample playbook task for these:
- name: install certain python modules for docker
pip:
name: "{{ item.name }}"
version: "{{ item.version }}"
state: present
with_items:
- { name: docker, version: 2.0.0 }
- { name: docker-py, version: 1.10.6 }
所有我的游戏书从那以后工作正常。
All my play books work fine since then.
这篇关于即使安装它,Ansible也不能导入docker-py的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!