Ansible nicht importieren docker-py, obwohl es installiert ist
Habe ich überprüft dieser Beitrag und folgte dem Update in beiden Antworten und weder gearbeitet. Ich bin die Eröffnung einer neuen post-Teils wegen, und Teils, weil ich bin immer eine etwas andere Fehlermeldung, obwohl das problem könnte das gleiche sein.
Ansible host:
$ ansible --version
ansible 2.1.0.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
Ziel-client myserver:
$ pip list | egrep 'six|docker|websocket_client'
docker-py (1.2.3)
six (1.10.0)
test.yml:
---
- hosts: myserver
remote_user: root
tasks:
- name: stop any running docker registries
docker_container:
name: registry
state: stopped
...
Server-Ansible (ansible-playbook alias ap):
$ ap -vvvv test.yml
Die Ausgabe:
(wahrscheinlich überflüssige Ausgabe, Schnitt):
fatal: [myserver]: FAILED! => {
"changed": false,
"failed": true,
"invocation": {
"module_args": {
"api_version": null,
"blkio_weight": null,
"cacert_path": null,
"capabilities": null,
"cert_path": null,
"command": null,
"cpu_period": null,
"cpu_quota": null,
"cpu_shares": null,
"cpuset_cpus": null,
"cpuset_mems": null,
"debug": false,
"detach": true,
"devices": null,
"dns_opts": null,
"dns_search_domains": null,
"dns_servers": null,
"docker_host": null,
"entrypoint": null,
"env": null,
"etc_hosts": null,
"exposed_ports": null,
"filter_logger": false,
"force_kill": false,
"groups": null,
"hostname": null,
"image": null,
"interactive": false,
"ipc_mode": null,
"keep_volumes": true,
"kernel_memory": null,
"key_path": null,
"kill_signal": null,
"labels": null,
"links": null,
"log_driver":
"json-file",
"log_options": null,
"mac_address": null,
"memory": "0",
"memory_reservation": null,
"memory_swap": null,
"memory_swappiness": null,
"name": "registry",
"network_mode": null,
"networks": null,
"oom_killer": null,
"paused": false,
"pid_mode": null,
"privileged": false,
"published_ports": null,
"pull": false,
"read_only": false,
"recreate": false,
"restart": false,
"restart_policy": null,
"restart_retries": 0,
"security_opts": null,
"shm_size": null,
"ssl_version": null,
"state": "stopped",
"stop_signal": null,
"stop_timeout": null,
"timeout": null,
"tls": null,
"tls_hostname": null,
"tls_verify": null,
"trust_image_content": false,
"tty": false,
"ulimits": null,
"user": null,
"uts": null,
"volume_driver": null,
"volumes": null,
"volumes_from": null
},
"module_name": "docker_container"
},
"msg":
(die einschlägigen Fehler):
"Failed to import docker-py - cannot import name NotFound. Try pip install docker-py"}
Bekomme ich die gleiche Fehlermeldung, wenn ich ein downgrade auf eine docker-py-Modul 1.1.0 gemäß der ersten Antwort, die in der referenzierten post. Ich habe auch versucht, chmod der Verzeichnisse und es machte keinen Unterschied:
(/usr/lib/python2.7/site-packages) myserver$ ls -lad docker*
drwxr-xr-x. 6 root root 4096 Jul 4 10:57 docker/
drwxr-xr-x. 2 root root 4096 Jul 4 10:57 docker_py-1.2.3-py2.7.egg-info/
vom chmod -R go+rx docker*
.
Hat jemand das schon mal gesehen? Ich habe versucht mit der pip-ansible-Modul die Module installieren und dann nach dem entfernen Sie Sie manuell, installiert diese manuell in der referenzierten post. Ich bin auch mit 2.1.0.0. wie Sie sehen können, die angeblich dieses Problem zu beheben.
InformationsquelleAutor volvox | 2016-07-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, weil neue Versionen von python-Modulen
docker
unddocker-py
dass ansible verwendet werden, sind nicht kompatibel. Ich musste wieder zurück, und geben Sie explizit die folgenden Versionen von PIP-Pakete:Probe playbook Aufgabe für diese:
Alle meine play books funktionieren, da dann.
InformationsquelleAutor anoxis
Für mich die Angabe des Pfads zu
docker-py
gearbeitet.Grundsätzlich Ansible war auf der Suche im falschen Verzeichnis.
Volle Punktzahl, Clay Graham, der für seine großartigen Artikel über das Thema:
https://medium.com/dronzebot/ansible-and-docker-py-path-issues-and-resolving-them-e3834d5bb79a
InformationsquelleAutor Christopher Carlson
Den Anforderungen für die docker-py-Moduls auf ansible-Dokumentation für die Andockfenster* Module ist nicht wirklich up-to-date, aber generell sind hier einige ansible - docker-py-Paare, die funktionieren sollte:
Ansible 2.1.0.0 erfordert docker-py version 1.7.0 mindestens, was wiederum erfordert mindestens Andockfenster 1.9 auf dem client installiert.
Wenn Sie müssen, verwenden Sie eine ältere version von docker, dann können Sie Andockfenster 1.7 mit ansible 2.0.1.0-und Andockfenster-py 1.4.0.
Wenn Sie eine noch ältere version von docker, wie 1.6 dann stecken Sie mit ansible 1.9
docker ps --filter=name=registry -q
und registrieren die Ausgabe als var, dann verwenden Sie shell-Befehle wiedocker stop {{ docker_regID.stdout }}
etc.meinst du die Fernbedienung hat Docker installiert oder die der einheimischen hat, um es installiert haben? Ist es eigentlich mit der Kommunikation über den Docker-Daemon?
InformationsquelleAutor SztupY