Centos7 docker py不';似乎没有安装
我安装了Centos7 minimal,然后:ansible、docker、pip,并使用pip安装了docker py 版本:Centos7 docker py不';似乎没有安装,docker,ansible,centos7,Docker,Ansible,Centos7,我安装了Centos7 minimal,然后:ansible、docker、pip,并使用pip安装了docker py 版本: -Docker版本1.6.0,内部版本8aae715/1.6.0 -表1.9.1 -docker_py-1.2.2 例如,尝试运行剧本 - name: redis container docker: name: myredis image: redis state: started -名称:redis容器 码头工人: 姓名:myredis
-Docker版本1.6.0,内部版本8aae715/1.6.0
-表1.9.1
-docker_py-1.2.2 例如,尝试运行剧本 - name: redis container docker: name: myredis image: redis state: started -名称:redis容器 码头工人: 姓名:myredis 图片:redis 国家:开始 我得到消息:
docker py
似乎没有安装,但Ansible docker模块需要安装
我看不出有什么问题。是CentOS、docker和ansible版本吗
PS:我禁用了防火墙D和SELinux
有什么想法吗?
谢谢我发现docker py模块有几个问题。在我处理完这些问题后,我得出了以下结论:
- name: Docker-PY
pip:
name: "{{ item }}"
with_items:
- six==1.4
- docker-py==1.1.0
首先,我遇到了你的问题。解决方案是显式设置six的最新版本,如下所述:
之后,我在docker py 1.2.2版本中遇到了一个问题(您可能也会遇到)。解决方法是指定较旧的版本,如下所述:。执行pip卸载docker py以摆脱较新版本
如果您没有使用ansible安装这些,请执行以下操作:
[sudo] pip uninstall docker-py
[sudo] pip install six==1.4
[sudo] pip install docker-py==1.1.0
tl;博士
检查文件权限并确保用户可以读取/usr/lib/python2.7/site-packages中的python模块
上下文
我最近谈到了这个问题,但这是一个许可问题
注意,我使用了docker 1.9.1、ansible 2.0.1.0和redhat 7.2
我用ansible安装了docker py(这可能不是您的情况)
我是这样做的:
- name: install docker-py with pip
become: true
pip: state=present name='{{ item }}'
with_item:
- docker-py==1.2.3
- six==1.10.0
问题
在sudo时,ansible可以使用默认的umask 0077安装docker py。因此,除root用户外,没有任何用户能够读取docker py模块文件
您的剧本将导致docker py似乎未安装,但Ansible docker模块需要错误
请注意以下各项之间的差异:
sudo-pip-install-docker-py
=>/usr/lib/python2.7/site-packages/docker
处于模式0700
sudo su
然后pip安装docker py
=>/usr/lib/python2.7/site packages/docker
处于模式0755
修理
ansible 2.1可通过将umask=0022
参数传递给pip模块(请参阅)解决此问题
现在,我通过删除在模式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
如果您使用的是CentOS7或类似产品,则可能不希望通过pip安装未打包的代码。在这种情况下,最好知道Extras频道有一个包PythonDocker py
。我遇到了这个问题,安装了那个软件包,然后去参加比赛。最近我遇到了这个问题的一个变体。这不是因为我使用了sudo
来安装模块,而是相反
无论出于何种原因,我选择使用pip的--user
标志安装docker
,然后不幸地“想到”使用-b
或--been
选项
这导致运行我的playbook的提升Ansible实例无法使用“显然”安装的docker
模块。分享,以防有人“有那么一天”,后来偶然发现这一点。希望它能帮助你,因为我用一点“愚蠢的税”支付了这个提醒,希望对我们双方都足够了。:) 你能出示你的文件吗?我没有文件。我正在使用ansible playbook-I hosts.ini playbook.yml这个剧本有一个我在帖子中写的任务。你是说别的还是别的?就是这样。非常感谢。