Bir seferde bir ana bilgisayarda ansible'ı nasıl çalıştırırım ve bir hatayı nasıl kırabilirim


15

Bir dizi lapa lapa cihazını sırayla güncellemek istediğim bir Ansible oyun kitabım var. Kullanabilirim serial:1, ancak bir hata alırsam oyun kitabını tamamen durdurmak istiyorum, böylece hataları biriktirmek yerine devam etmeden önce düzeltebilirim.

Ayrıca, oynatma kitabını durduğum ana bilgisayarda yeniden başlatmak istiyorum. Şu anda Ansible v2.0 kullanılıyor, ancak bu tür bir özellik yalnızca yeni sürümlerde mevcutsa daha yeni bir sürüme de geçebilir.

Yanıtlar:


15

Bir hata oluştuğunda ve belgelereserial: 1 göre kullandığınızda oynatma kitabınız duracaktır .

Varsayılan olarak Ansible, grupta henüz başarısız olmayan ana bilgisayarlar olduğu sürece eylemleri yürütmeye devam eder.

Bu, toplulukta varsayılan davranış konusunda biraz karışıklık olduğunu ve 1.8 ile 2.1 arasında bir yerde değiştiğini veya buggy olduğunu söyledi.

Dolayısıyla, serial: 1yeterli değilse, bu ek ayarı kullanın:

max_failure_percentage: 0

Yukarıda açıklanan yuvarlanma güncellemeleri gibi bazı durumlarda, belirli bir hata eşiğine ulaşıldığında oyunu iptal etmek istenebilir. Bunu başarmak için, 1.3 sürümünden itibaren bir maksimum hata yüzdesi ayarlayabilirsiniz ...

==

Başucu kitabınızı yeniden denemeye gelince, şöyle bir hata mesajı görüyor olmalısınız:

to retry, use: --limit @/home/user/site.retry

Bu --limitbayrağı ve sonraki yürütmenizde kullanın, ansible-playbookbaşarısız olduğu yerden devam edecektir.

retry_files_enabled = FalseYapılandırmanızda ayarlamadığınız sürece yeniden deneme dosyaları oluşturulur .

Alternatif olarak, --start-at-taskişe yarayabilir.

Kaynaklar:

https://github.com/ansible/ansible/issues/1663

https://github.com/ansible/ansible/issues/16241

http://docs.ansible.com/ansible/playbooks_delegation.html#rolling-update-batch-size

http://docs.ansible.com/ansible/playbooks_delegation.html#maximum-failure-percentage

http://docs.ansible.com/ansible/intro_configuration.html#retry-files-enabled

http://docs.ansible.com/ansible/playbooks_startnstep.html#start-at-task


1
Herkes 1.9 ve 2.0 değişiklik / hata ne olduğunu daha iyi bir fikir varsa lütfen bana bildirin ve ben bu yanıtı güncelleyeceğim.
Woodland Hunter

Evet, ansible 2.0'ın onlardan birinde arıza alırsa diğer ana bilgisayarlarda çalışmaya devam edeceğini biliyorum. Ben seri koştu olsaydı farklı bir davranış olacağını sanmıyordum: 1. Söylediğin bu mu?
Peter Turner

Bu doğru, seri: 1 bu davranışa sahip olmalı ve eğer yoksa (çünkü ??) max_failure_per yüzdesi: 0 da ekleyin. Ayrıca 2.0 hata çok vardı Ansible yükseltme öneririz .
Woodland Hunter

O kadar çok böcek, aslında .retry dosyalarını 2.0 eksik! github.com/ansible/ansible/issues/13944
Woodland Hunter

Heh, bu yüzden kaynağı sürekli yamalayan tek kişi ben değilim. Bunu bilmek güzel.
Peter Turner

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.