Я установил Docker и Ansible на свой AWS Ec2 Linux следующим образом:
sudo yum update -y
sudo yum install docker -v
sudo service docker start
sudo yum-config-manager --enable epel
sudo yum repolist
sudo yum install ansible
Я обнаружил следующее сообщение об ошибке, когда попытался загрузить образы docker на свой AWS Ec2 Linux с помощью ansible.
fatal: [127.0.0.1]: FAILED! => {"changed": false, "msg": "Failed to import docker or docker-py - No module named docker. Try `pip install docker` or `pip install docker-py` (Python 2.6)"}
Версия докера
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a215d7133c34aa18e3b72b4a21fd0c6136
Built: Fri Oct 26 23:38:19 2018
OS/Arch: linux/amd64
Experimental: false
Версия Ansible
ansible 2.6.8
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/home/ec2-user/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.6.9 (unknown, Nov 2 2017, 19:21:21) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]
Вот моя часть доступного файла playbook
- name: Pull a container image
docker_container:
name: mynodejs
image: registry.gitlab.com/ppshein/test:latest
pull: yes
state: started
published_ports:
- 8080:80
Пожалуйста, дайте мне знать, что мне не хватает для настройки в AWS Ec2 Linux.





Вам необходимо установить модуль Python docker:
sudo yum install python-pip
sudo pip install docker
попробуйте: sudo yum remove python-pip; sudo easy_install pip; sudo pip install docker
для sudo yum remove python-pip я нашел следующее сообщение Failed to set locale, defaulting to C Loaded plugins: priorities, update-motd, upgrade-helper No Match for argument: python-pip No Packages marked for removal. Для третьих, так же, как это.
При чистой установке у меня работало следующее: sudo easy_install pipsudo pip install --ignore-installed docker
"pip install --ignore-installed docker": это очень помогло
pip3 install docker для использования с python3
также, если вы хотеть для использования python2 (не рекомендовал бы его на данном этапе), вам нужен пакет docker-py, а не docker EDIT: моя ошибка, docker также для python 2.7, но docker-py для python 2.6
Добавьте этот ansible_python_interpreter в свой файл hosts:
Измените [servers:vars] на [your-group-of-server-names:vars]
Для Python> = 2.7
[servers:vars]
ansible_python_interpreter=/usr/bin/python3 # For Python3 [default Ubuntu-18.04]
Python <= 2.7
[servers:vars]
ansible_python_interpreter=/usr/bin/python # For Python2.7
У людей, проходящих мимо, была такая же проблема с Ubuntu, установленным через apt, давая 2.7.15 на Ubuntu. Исправлено установкой последней версии с:
sudo apt install software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt install ansible
что дает 2,9,2 на сегодняшний день.
Что сработало для меня для ansible 2.9.1 и Ubuntu 20.10, так это установка python3-docker:
sudo apt-get install python3-docker
У меня была такая же проблема. Я получал ошибку:
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Failed to import docker or docker-py - No module named docker.
Я использовал следующее:
Ubuntu 20.04
Ansible 2.10.7
Python 3.8.10
pip 20.0.2 (pip3)
Вот как я починил свой:
Итак, сначала я выполнил команду для удаления всех существующих копий библиотек Python docker, docker-py и docker-compose:
pip3 uninstall docker docker-py docker-compose
А затем выполнил команду ниже, чтобы установить библиотека для создания докеров Python вместе с библиотека докеров python
pip3 install docker-compose
Примечание: Пожалуйста, не надо добавьте sudo в команду
Это все.
sudo yum install python-pipможет быть установлен успешно. для второго встретилсяFile "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 858, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'pip==7.1.0' distribution was not found and is required by the application