2017-11-29 161 views
5

Birçok makinede çalışan bir ansible oyun kitabım var. Bu kitapta, apt kullanarak yüklemeye çalıştığım birkaç paketim var, ancak bazen diğer oyun kitaplarının çalıştığı, periyodik bir güncelleştirme veya paralel olarak çalışan ve kilidi kaplayan başka herhangi bir apt örneği başarısız oluyor.Başarısız olursa, 'apt' görevini yeniden denemek için nasıl yetenekli olabilirim?

Temelde görünüşe göre, vazgeçmeden önce bir yeniden deneme döngü eklemek istiyorum ama yeniden deneme apt için desteklenmemektedir olarak bunu başaramadı: Ben ansible's documentation içinde apt module sayfasına baktım ve hatta olsa aslında kullanmaya çalıştı Orada (ki açıkça başarısız oldu).

Her neyse - 30 saniye gecikme ile 3 kez diyelim, ancak sadece paketi yüklemek için başarısızlıklarla ilgili olarak tekrar denemek için nasıl yardımcı olacağımıza dair bir fikre ihtiyacım var.

+0

ekleme veriler: Ben apt (girinti cevapsız 2 boşluklar) yeniden deneme ve gecikme yapmak için bir yol bulmuş, ama yine de eksik apt'in nasıl başarılı olduğunu bilmek. Rc'yi kontrol etmenin 0 olduğunu düşünürdüm, öyle değil. Boş olması için stderr'e güvenebilir miyim? –

cevap

6

evrensel task results tests vardır, bu nedenle kullanabilirsiniz:

- apt: 
    name: build-essential 
    state: present 
    register: apt_res 
    retries: 5 
    until: apt_res | success