Ho controllato this post e ho seguito la correzione in entrambe le risposte e nessuno dei due ha funzionato. Sto aprendo un nuovo post in parte a causa di ciò e in parte perché sto ottenendo un errore leggermente diverso anche se il problema potrebbe essere lo stesso.Ansible non può importare docker-py anche se è installato
Ansible ospite:
$ ansible --version
ansible 2.1.0.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
Destinazione cliente mioserver:
$ 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 di Ansible (ansible-playbook alias per ap):
$ ap -vvvv test.yml
L'output:
(uscita probabilmente estranea, snipped):
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":
(l'errore pertinente):
"Failed to import docker-py - cannot import name NotFound. Try pip install docker-py"}
ottengo lo stesso errore quando eseguo il downgrade il modulo docker-py a 1.1.0 come da prima risposta nel post di riferimento. Ho anche cercato di chmod le directory e non faceva differenza:
(/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/
da chmod -R go+rx docker*
.
Qualcuno ha visto questo prima? Ho provato a utilizzare il modulo ansible per installare i moduli e dopo averli rimossi manualmente, li ho reinstallati manualmente come nel post di riferimento. Sto anche usando 2.1.0.0. come puoi vedere, che avrebbe dovuto risolvere il problema.
Cheers, ma come ho 2.1.0.0 sul server, e ho provato 1.7.0 finestra mobile-py con 1.11 finestra mobile a! Avail. Ho una soluzione alternativa per le persone frustrate là fuori che è sempre avviare il contenitore del registro con name = registry e quindi nel playbook usare 'docker ps --filter = name = registry -q' e registrare l'output come var, quindi usa comandi di shell come 'docker stop {{docker_regID.stdout}}' ecc. – volvox
@SztupY vuoi dire che il telecomando deve avere Docker installato o il locale deve averlo installato? In realtà sta comunicando attraverso il Docker Daemon? – Breedly