Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ansible returns with "Failed to import the required Python library (Docker SDK for Python: docker (Python >= 2.7) or docker-py (Python 2.6))

Tags:

I am running myserver in ubuntu:

+ sudo cat /etc/os-release NAME="Ubuntu" VERSION="16.04.6 LTS (Xenial Xerus)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 16.04.6 LTS" VERSION_ID="16.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" VERSION_CODENAME=xenial UBUNTU_CODENAME=xenial 

I use ansible and when I run it I get the following error:

fatal: [localhost]: FAILED! => {"changed": false, "msg": "Failed to import the required Python library (Docker SDK for Python: docker (Python >= 2.7) or docker-py (Python 2.6)) on dd63315fad06's Python /usr/bin/python. Please read module documentation and install in the appropriate location, for example via `pip install docker` or `pip install docker-py` (Python 2.6). The error was: No module named docker"} 

when I run

python -c "import sys; print(sys.path)" 

I see:

['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/local/lib/python2.7/dist-packages/pip-19.2.2-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/fasteners-0.15-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/monotonic-1.5-py2.7.egg', '/usr/lib/python2.7/dist-packages'] 

and python versions are as follows:

+ python --version Python 2.7.12 + python3 --version Python 3.5.2 

Then as I see everything is fine and I am not sure why I get

"Failed to import the required Python library (Docker SDK for Python: docker (Python >= 2.7) or docker-py (Python 2.6)) on dd63315fad06's Python /usr/bin/python. Please read module documentation and install in the appropriate location, for example via `pip install docker` or `pip install docker-py` (Python 2.6). The error was: No module named docker" 

in ansible?

like image 800
Learner Avatar asked Dec 18 '19 02:12

Learner


2 Answers

It appears that you don't have the docker module installed.

You will need to install it via your system package manager (apt install python-docker, for example), or using pip (pip install docker).

If you have multiple Python versions, make sure that you've installed the docker module into the version that Ansible is using.

like image 86
larsks Avatar answered Sep 19 '22 09:09

larsks


I have faced the same issue for the Ansible docker-compose module. I was able to fix it by selecting python3 for those tasks.

Before (Not working)

- name: Create docker service services   docker_compose:     project_src: /root/   become: true 

After (Working)

We can get the python location by $which python3

- name: Create fleuntd services   docker_compose:     project_src: /root/   become: true   vars:     ansible_python_interpreter: /bin/python3 
like image 42
Jay Reddy Avatar answered Sep 18 '22 09:09

Jay Reddy