Tôi đã kiểm tra this post và làm theo cách khắc phục trong cả hai câu trả lời và không hoạt động. Tôi đang mở một bài viết mới một phần vì điều đó và một phần vì tôi nhận được một lỗi hơi khác nhau mặc dù vấn đề có thể giống nhau.Ansible không thể nhập docker-py ngay cả khi nó được cài đặt
Ansible host:
$ ansible --version
ansible 2.1.0.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
Điểm đến khách hàng 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
...
Ansible máy chủ (ansible-playbook aliased để ap):
$ ap -vvvv test.yml
Sản lượng:
(đầu ra có thể không liên quan, 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ỗi thích hợp):
"Failed to import docker-py - cannot import name NotFound. Try pip install docker-py"}
tôi nhận được lỗi tương tự khi tôi hạ cấp mô-đun docker-py đến 1.1.0 theo câu trả lời đầu tiên trong bài được tham chiếu. Tôi cũng đã cố gắng chmod các thư mục và nó không có sự khác biệt:
(/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/
từ chmod -R go+rx docker*
.
Có ai nhìn thấy điều này trước đây không? Tôi đã cố gắng sử dụng mô-đun pip ansible để cài đặt các mô-đun và sau đó sau khi gỡ bỏ chúng bằng tay, cài đặt lại chúng theo cách thủ công như trong bài tham chiếu. Tôi cũng đang sử dụng 2.1.0.0. như bạn có thể thấy, đó là nghĩa vụ phải khắc phục vấn đề này.
Chúc mừng, nhưng như tôi đã có 2.1.0.0 trên máy chủ, và đã cố gắng 1.7.0 Docker-py với 1,11 docker đến! Avail. Tôi có một cách giải quyết cho bất kỳ người thất vọng nào ở đó là luôn luôn bắt đầu container đăng ký với name = registry và sau đó trong playbook sử dụng 'docker ps --filter = name = registry -q' và đăng ký đầu ra dưới dạng var, sau đó sử dụng các lệnh shell chẳng hạn như 'docker stop {{docker_regID.stdout}}' vv – volvox
@SztupY bạn có nghĩa là điều khiển từ xa phải có Docker được cài đặt hay địa phương phải cài đặt nó? Nó thực sự giao tiếp thông qua Docker Daemon? – Breedly