#docker #ansible #docker-login
#докер #ансибль #docker-login
Вопрос:
Я пытаюсь создать сервер, который запускает контейнер docker, используя ansible, но я получаю сообщение об ошибке Failed to import the required Python library (Docker SDK for Python: docker (Python >= 2.7) or docker-py (Python 2.6)) on ubuntu-xenial's Python /usr/bin/python3
.
Целевой машиной является ubuntu ubuntu, в настоящее время в vagrant, но я получаю ту же ошибку на виртуальной машине Azure. Моя версия ansible — 2.9.15, версия docker, которую устанавливает ansible, — 20.10.1.
Мой тестовый файл инвентаризации состоит из
all:
vars:
ansible_user: vagrant
ansible_become: yes
ansible_python_interpreter: /usr/bin/python3
children:
a_servers:
hosts:
192.168.33.100
b_servers:
hosts:
192.168.33.100
prod:
hosts:
192.168.33.100
Соответствующая часть моего плана действий такова:
- name: Docker role
include_role:
name: nickjj.docker
vars:
docker__users: ['deploy']
docker_registries:
- #registry_url: "https://index.docker.io/v1/"
username: "{{ docker_user.username }}"
password: "{{ docker_user.password }}"
- name: Log in to docker
docker_login:
username: "{{ docker_user.username }}"
password: "{{ docker_user.password }}"
become: yes
become_user: deploy
Когда я вхожу в окно vagrant в качестве пользователя deploy, я могу работать docker login
и docker-compose up -d
без каких-либо проблем. Я также могу запустить /usr/bin/python3
и импортировать docker без проблем.
В системе нет другого python.
Ошибка исходит от docker_login
ресурса, который, похоже, не может импортировать docker.
Является ли конфигурация, которую я упускаю из виду, или что-то еще, что я упустил из виду, что может привести к сбою? Любая помощь будет очень признательна.
Комментарии:
1. Быстрая проверка: используйте
pip
модуль для установки docker перед запуском другой задачи и посмотрите, что произойдет. Если он сообщаетchanged
, и ваш логин выполняется без ошибок, тогда вам нужно выяснить, почему вы думаете, что он установлен, а его нет. Если он сообщаетok
, а вход в систему по-прежнему не выполняется … тогда вы обнаружили что-то, что в значительной степени похоже на ошибку.2. Спасибо @Zeitounator, оказывается, что он не был установлен, хотя в используемом мной сборнике пьес говорится, что это должно быть. Я еще не понял, почему, но использование pip позволило мне двигаться вперед на данный момент.