Piszę skrypt, aby uruchomić eksperyment generowania obciążenia na kilku hostach. Mógłbym napisać skrypt basha, aby uruchomić wiele sesji ssh, ale miałem nadzieję, że użyję czegoś bardziej uporządkowanego. Ponieważ używam Pythona do większości moich skryptów, pomyślałem, że Fabric wygląda na dobrą opcję.Przekazywanie różnych argumentów do różnych hostów w Fabric
Jedynym problemem jest to, że za każdym razem muszę przekazać niewielką ilość danych specyficznych dla hosta (tak naprawdę tylko identyfikator lub licznik), a ja chciałbym je uruchomić równolegle.
Innymi słowy, chciałbym zrobić coś takiego, jak poniżej, gdzie numer_hosta jest inny (prawdopodobnie tylko inkrementowany) dla każdego hosta.
@parallel
def launch():
with cd('/working/dir'):
run("./start/script -id=%d", host_num)
Czy to możliwe w Fabric? Jeśli nie, czy istnieje inne narzędzie, które mógłbym wykorzystać do wykonania tego samego?
Dzięki. Szkoda, że nie ma lepszego mechanizmu - ta metoda nie działa zbyt dobrze, jeśli chcesz uruchomić ten sam skrypt na różnych zestawach hosta. – bsowell
Czy nadal będzie działać równolegle? Mam to samo wyzwanie, ale mam 20 hostów, które są wirowane w czasie wykonywania (wystąpienia AWS EC2). Tak więc nie sądzę, żeby działało trudne kodowanie instrukcji "if-then" z wyprzedzeniem. –