我正在尝试使用 ansible 构建一个运行 docker 容器的服务器,但我收到了错误消息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 xenial,目前处于 vagrant 状态,但我在 Azure VM 上遇到了同样的错误。我的 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
当我以用户 deploy 登录 vagrant box 时,我可以运行docker login
并且docker-compose up -d
没有任何问题。我也可以/usr/bin/python3
毫无问题地运行和导入 docker。
系统上没有其他python。
错误来自docker_login
资源,似乎无法导入 docker。
是我缺少的配置,还是我忽略的其他会导致它失败的配置?任何帮助深表感谢。