2017-11-29 118 views
5

Mam zakładkę ansible działającą na wielu komputerach. W tym podręczniku mam kilka pakietów, które próbuję zainstalować przy użyciu apt, ale czasami nie działają, albo dlatego, że działają inne podręczniki, okresowa aktualizacja lub jakakolwiek inna instancja apt działająca równolegle i chwytająca blokadę.Jak wymusić ansibli, aby ponowić zadanie "apt", jeśli się nie powiedzie?

Zasadniczo chcę, aby dodać pętlę ponawiania przed poddaniem się, ale nie udało się zrobić tak prób nie jest obsługiwany przez apt, widocznie: Spojrzałem na stronę apt module w ansible's documentation, a nawet starał się właściwie go używać, mimo że jest nie istnieje (co oczywiście nie powiodło się).

W każdym razie - potrzebuję pomysłu, jak uzyskać ansibla do powtórzenia, powiedzmy 3 razy, z 30-sekundowym opóźnieniem, ale tylko w przypadku niepowodzenia instalacji pakietu.

+0

Dodawanie danych: Znalazłem sposób na robienie ponownych prób i opóźnienie apt (nieodebrane 2 miejsca w wcięcia), ale mimo to nadal brakuje część tego, jak się dowiedzieć, że apt osiągnął sukces. Myślałem, że sprawdzenie rc wynosi 0, wystarczy. Czy mogę polegać na tym, że stderr jest pusty? –

Odpowiedz

6

Są uniwersalne task results tests, więc można użyć:

- apt: 
    name: build-essential 
    state: present 
    register: apt_res 
    retries: 5 
    until: apt_res | success 
Powiązane problemy