Na poziomie gry musimy serial: 1
pozwolić nam na uruchomienie całej gry pojedynczo. Ale nie znalazłem prostego sposobu na zrobienie tego w jednym zadaniu. Jest to szczególnie istotne, jeśli dane zadanie nie wykonuje właściwego blokowania (z jakiegokolwiek powodu).
Oczywistą odpowiedzią jest postawienie zadania we własnej grze. Ale to nie pomaga w rolach. (Konieczność serial: 1
grania przy użyciu roli nie jest tak naprawdę intuicyjna).
serial: 1
ustawmy to przynajmniej na grze. Ale chcę tylko ustawić go na podelement sztuki (jakkolwiek to właściwie jest. Myślałem, że to „zadanie”, ale powyższy komentarz wydaje się nie zgadzać).serial: 1
robi coś zupełnie innego: to jest jak uruchamianie podręcznika dla każdego hosta po kolei, czekanie na ukończenie pełnego podręcznika przed przejściem do następnego hosta.forks=1
oznacza uruchomienie pierwszego zadania w grze na jednym hoście przed uruchomieniem tego samego zadania na następnym hoście, więc pierwsze zadanie zostanie uruchomione dla każdego hosta przed dotknięciem następnego zadania. Więc chceszforks=1
tylko na jedną grę; niestety nie jest to obecnie możliwe.Istnieje obejście tego problemu - można przekazać listę hostów (lub grupy) do
with_items
, a następnie użyćdelegate_to
z tą listą. W ten sposób zadanie będzie wykonywane host za hostem.Na przykład:
źródło
run_once: true
tam jest, spróbuj go wyjąć. Nie spodoba ci się to, co się stanie. (tyle powtórzeń aaaahhhh)Jeśli uruchamiasz go na jednym komputerze, wówczas występuje problem wyłącznych blokad dla więcej niż jednego hosta. Więc powinieneś wykonać jeden po drugim dla wszystkich hostów. W tym celu musisz
--forks=1
być ustawiony podczas wywoływania polecenia ansible playbook. Przykład:ansible-playbook webserver.yml --forks=1
gdzie webserver.yml ma app01 i app02 w twoim[webserver]
źródło
Pomyśl, co chcesz
run_once: true
źródło
W przypadku poleceń, które można uruchamiać lokalnie, użyj pętli, aby iterować wszystkie hosty w grze. Działa to TYLKO, jeśli polecenie można uruchomić lokalnie. Możesz również uruchomić polecenie z ssh w nim na zdalnych komputerach jeden po drugim w ten sposób, jeśli klucze są skonfigurowane, ale staje się to trudne, gdy mówimy o eskalacji.
NA PRZYKŁAD:
źródło
inventory_hostname
, w przeciwnym razie pętla nie ma sensu.