Tôi đang viết một tập lệnh để khởi chạy thử nghiệm tạo tải trên một số máy chủ. Tôi có thể viết một kịch bản bash để bắt đầu nhiều phiên ssh, nhưng tôi đã hy vọng sẽ sử dụng một cái gì đó có cấu trúc hơn. Vì tôi sử dụng Python cho hầu hết các kịch bản của tôi, tôi nghĩ rằng Fabric trông giống như một lựa chọn tốt.Gửi các đối số khác nhau cho các máy chủ khác nhau trong Fabric
Vấn đề duy nhất là tôi cần truyền một lượng nhỏ dữ liệu máy chủ cụ thể với mỗi lệnh (thực sự chỉ là một id hoặc bộ đếm), và tôi muốn chạy chúng song song.
Nói cách khác, tôi muốn thực hiện một việc như sau, trong đó host_num khác (có thể chỉ tăng dần) cho mỗi máy chủ.
@parallel
def launch():
with cd('/working/dir'):
run("./start/script -id=%d", host_num)
Điều này có thể thực hiện được trong Fabric? Nếu không, có một công cụ khác mà tôi có thể sử dụng để thực hiện điều tương tự không?
Cảm ơn. Nó quá tệ không có cơ chế tốt hơn - phương pháp này dường như không hoạt động tốt nếu bạn muốn chạy cùng một tập lệnh trên các bộ máy chủ khác nhau. – bsowell
Điều này vẫn chạy song song? Tôi có cùng một thách thức, nhưng tôi có 20 máy chủ, được tách ra tại thời gian chạy (AWS EC2 trường hợp). Vì vậy, tôi không nghĩ rằng khó mã hóa các câu lệnh 'if-then' trước thời hạn sẽ hoạt động. –