Có một vài điều bạn có thể làm, nhưng khi bạn đã đúng chỉ ra, Ansible trong hình thức hiện tại của nó không thực sự cung cấp một giải pháp tốt.
giải pháp chính thức-ish:
Một ý tưởng là để đánh dấu nhiệm vụ như async và thăm dò ý kiến nó. Rõ ràng điều này chỉ phù hợp nếu nó có khả năng chạy theo cách như vậy mà không gây ra thất bại ở nơi khác trong playbook của bạn. Các tài liệu async là here và đây là một ví dụ dỡ bỏ từ họ:
- hosts: all
remote_user: root
tasks:
- name: simulate long running op (15 sec), wait for up to 45 sec, poll every 5 sec
command: /bin/sleep 15
async: 45
poll: 5
này ít nhất có thể cung cấp cho bạn một 'ping' để biết rằng nhiệm vụ không phải là treo.
Phương thức xác nhận chính thức khác duy nhất là Ansible Tower, có thanh tiến trình cho các tác vụ nhưng không miễn phí.
Hacky-ish giải pháp:
Ngoài việc trên, bạn đang khá nhiều sẽ phải cuộn của riêng bạn. Ví dụ cụ thể của bạn về đồng bộ một thùng S3 có thể được theo dõi khá dễ dàng với một kịch bản định kỳ gọi AWS CLI và đếm số lượng các mục trong một thùng, nhưng đó không phải là một giải pháp chung tốt.
Điều duy nhất tôi có thể tưởng tượng là phần nào hiệu quả sẽ xem phiên ssh đến từ một trong các nút của bạn.
Để làm điều đó, bạn có thể định cấu hình người dùng an toàn trên máy đó để kết nối qua màn hình và chủ động xem nó. Hoặc có thể sử dụng tùy chọn log_output
trong mục nhập sudoers cho người dùng đó, cho phép bạn kết nối tệp. Thông tin chi tiết về log_output có thể được tìm thấy trên sudoers man page
Nguồn
2016-12-20 23:42:37