I installed Centos7 minimal and then: ansible, docker, pip and using pip I installed docker-py.
Versions:
- Docker version 1.6.0, build 8aae715/1.6.0
- ansible 1.9.1
- docker_py-1.2.2
Trying to run a playbook, for example
- name: redis container docker: name: myredis image: redis state: started
i get msg: docker-py
doesn't seem to be installed, but is required for the Ansible Docker module.
I can't see the problem. Is it the CentOS, docker and ansible version?
PS: I disabled the firewalld and SELinux
Any ideas? Thanks
tl;dr;
check file permissions and make sure your user can read the python module in /usr/lib/python2.7/site-packages
Context
I recently went to this is issue but it was a permission problem.
Note that I used docker 1.9.1, ansible 2.0.1.0 and redhat 7.2.
I installed docker-py with ansible (this might not be your case).
I did it with this role:
Problem
When sudoing, ansible may install docker-py with default umask 0077. As a result, no user, except root, will be able to read docker-py module files.
Your playbook will result with the
docker-py doesn't seem to be installed, but is required for the Ansible Docker module
error.Notice the differences between:
sudo pip install docker-py
=>/usr/lib/python2.7/site-packages/docker
is in mode 0700sudo su
thenpip install docker-py
=>/usr/lib/python2.7/site-packages/docker
is in mode 0755Fix
This will be fixable with ansible 2.1 by passing the
umask=0022
parameter to the pip module (see https://github.com/ansible/ansible-modules-core/commit/4b46200477216dbcc54611d1c3e6f0cc83757aaf).For now I fixed it by removing all packages installed in mode 0700:
Then reinstalling them by hand:
I found a couple problems with the docker-py module. After I worked through them I ended up with this:
First, I ran into your problem. The solution is to explicitly set the most recent version of six as described here: https://github.com/docker/docker-py/issues/344.
After that, I ran into an issue (you might run into it too) with a bug in the docker-py 1.2.2 version. The workaround is to specify an older version as described here: https://github.com/ansible/ansible-modules-core/issues/1227. Do a pip uninstall docker-py to get rid of the newer version.
If you aren't using ansible to install these then do this:
If you're working on CentOS7 or similar, you may not want to install unpackaged code via pip. In which case, it's good to know that the Extras channel has a package
python-docker-py
. I had this problem, installed that package, and was off to the races.