我安装了Centos7 minimal然后:ansible,docker,pip和使用pip我安装了docker-py .
版本:
- Docker版本1.6.0,版本8aae715 / 1.6.0
- ansible 1.9.1
- docker_py-1.2.2
例如,试图运行剧本
- name: redis container
docker:
name: myredis
image: redis
state: started
我得到msg: docker-py
似乎没有安装,但是Ansible Docker模块是必需的 .
我看不出问题 . 是CentOS,docker和ansible版本吗?
PS:我禁用了firewalld和SELinux
有任何想法吗?谢谢
3 回答
我发现docker-py模块存在一些问题 . 在我完成它们之后,我最终得到了这个:
首先,我遇到了你的问题 . 解决方案是显式设置最新版本的六个,如下所述:https://github.com/docker/docker-py/issues/344 .
在那之后,我遇到了一个问题(你也可能遇到它)和docker-py 1.2.2版本中的一个bug . 解决方法是指定旧版本,如下所述:https://github.com/ansible/ansible-modules-core/issues/1227 . 做一个pip卸载docker-py来摆脱新版本 .
如果您不使用ansible来安装这些,请执行以下操作:
如果你're working on CentOS7 or similar, you may not want to install unpackaged code via pip. In which case, it'很高兴知道Extras Channels 有一个包
python-docker-py
. 我遇到了这个问题,安装了这个包,并且参加了比赛 .tl;博士;
检查文件权限并确保您的用户可以读取/usr/lib/python2.7/site-packages中的python模块
上下文
我最近去了这个问题,但这是一个许可问题 .
请注意,我使用了docker 1.9.1,ansible 2.0.1.0和redhat 7.2 .
我用ansible安装了docker-py(这可能不是你的情况) .
我用这个角色做到了:
问题
在sudoing时,ansible可以使用默认的umask 0077安装docker-py . 因此,除root之外的任何用户都无法读取docker-py模块文件 .
你的剧本将导致
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
处于模式0700sudo su
然后pip install docker-py
=>/usr/lib/python2.7/site-packages/docker
处于模式0755修复
通过将
umask=0022
参数传递给pip模块(参见https://github.com/ansible/ansible-modules-core/commit/4b46200477216dbcc54611d1c3e6f0cc83757aaf),可以使用ansible 2.1修复此问题 .现在我通过删除模式0700中安装的所有软件包修复它:
然后手动重新安装它们: