Centos7 docker-py似乎没有安装
我安装最小的Centos7,然后:ansible,docker,pip和使用pip我安装了docker-py。
版本:
– Docker版本1.6.0,编译8aae715 / 1.6.0
– 可靠的1.9.1
– docker_py-1.2.2
尝试运行一个剧本,例如
- 名称:redis容器 泊坞窗: 名字:myredis image:redis 状态:开始
我得到味精: docker-py
似乎并没有安装,但是Ansible Docker模块是必需的。
我看不到问题。 它是CentOS,docker和有用的版本吗?
PS:我禁用了firewalld和SELinux
有任何想法吗? 谢谢
我发现docker-py模块有一些问题。 我通过他们后,我结束了这个:
- name: Docker-PY pip: name: "{{ item }}" with_items: - six==1.4 - docker-py==1.1.0
首先,我遇到了你的问题。 解决scheme是明确设置最新版本的六个,如下所述: https : //github.com/docker/docker-py/issues/344 。
之后,我遇到了一个问题(你可能会遇到它),在docker-py 1.2.2版本中有一个bug。 解决方法是按照此处所述指定旧版本: https : //github.com/ansible/ansible-modules-core/issues/1227 。 做一个点卸载docker-py摆脱新版本。
如果你没有使用安装这些,那么这样做:
[sudo] pip uninstall docker-py [sudo] pip install six==1.4 [sudo] pip install docker-py==1.1.0
如果您正在使用CentOS7或类似软件,则可能不想通过pip安装未打包的代码。 在这种情况下,最好知道Extras通道有一个包python-docker-py
。 我遇到了这个问题,安装了这个软件包,然后跑到了比赛中。
TL;博士;
检查文件权限,并确保你的用户可以读取/usr/lib/python2.7/site-packages中的python模块
上下文
我最近去了这个问题,但这是一个权限问题。
请注意,我使用了docker 1.9.1,ansible 2.0.1.0和redhat 7.2。
我安装了docker-py(这可能不是你的情况)。
我做了这个angular色:
- name: install docker-py with pip become: true pip: state=present name='{{ item }}' with_item: - docker-py==1.2.3 - six==1.10.0
问题
当sudoing时,ansible可以用默认的umask 0077来安装docker-py。结果,没有用户,除root以外,将能够读取docker-py模块文件。
您的playbook将会导致docker-py doesn't seem to be installed, but is required for the Ansible Docker module
错误docker-py doesn't seem to be installed, but is required for the Ansible Docker module
。
请注意以下几点的区别
-
sudo pip install docker-py
=>/usr/lib/python2.7/site-packages/docker
处于模式0700 -
sudo su
然后pip install docker-py
=>/usr/lib/python2.7/site-packages/docker
是在模式0755
固定
这将通过将umask=0022
parameter passing到pip模块(参见https://github.com/ansible/ansible-modules-core/commit/4b46200477216dbcc54611d1c3e6f0cc83757aaf )来解决。
现在我通过删除模式0700中安装的所有软件包来修复它:
pip uninstall -y six docker-py websocket_client
然后用手重新安装它们:
sudo su # now umask is 0022 pip install six==1.10.0 docker-py==1.2.3