Ansible Hatayı Yoksay

Ansible Hatayi Yoksay



Görevi başka bir ana cihazda yapılandırırken, Ansible hataları sık görülen bir durumdur. Eşsiz ve muhtemelen önemli sistem durumlarını temsil ederler. Buna rağmen, görevlerin de yürütülmesi ve başarılı bir şekilde yürütülürse çıktıyı göstermesi için kaçınmak istediğimiz bazı hatalar olabilir. Bu yazıda Ansible hatalarından ve bunları nasıl yok sayacağımızdan bahsedeceğiz. Ansible ile başarısızlıkları bastırmak ve yok saymak için özel olarak bir teknik gösteriyoruz.

Hata düzeltmenin aksine, başarısızlıklardan kaçınmak, Ansible başucu kitabındaki etkinlik etkilenmediği sürece görevlere devam etmeyi gerektirir. Ansible aracı, bir görevde hata ayıklarken bir görevi veya başucu kitabını tamamlayamadığında bir uyarı mesajı verir. Bunun birkaç nedeni vardır, ancak bunları belirleyip bir çözüm bulmak bize kalmıştır. Ne yazık ki, tüm hatalar düzeltilemez. İstemiyorsanız veya sorunu çözemiyorsanız, hataları yok saymaya başlamayı seçebilirsiniz.







Ansible'daki yöneticilerin çoğu, gerçek dünya senaryolarında hedef sunucularla bağlantı kurarken bu stratejiyi kullanır. Ansible, bir ifadeden sıfır olmayan bir sonuç döndürdüğünde veya bir paketten bir hata döndürdüğünde, varsayılan olarak bir hedef cihazdaki etkinlikleri durdurur ve diğer bazı sunuculardaki etkinliklere devam eder. Yine de, farklı davranmak isteyebileceğiniz bazı durumlar vardır. Sıfır olmayan döndürülen bir sonuç, bazen ilerlemeyi gösterir. Çoğu zaman, işlemin tüm ana bilgisayarlarda durması için bir sunucuda durmasını isteyebilirsiniz.



Ansible'daki Hataları Yoksaymanın Yolları

Ansible'da, görev başarısızlığını gösteriyorsa çalışma kitabı görevlerini gerçekleştirmek için farklı yollar kullanılır. Aşağıda, Ansible hata gösterse bile görevi yürütmeye yardımcı olacak farklı yollar verilmiştir:



1. Ignore_Errors=True Komutunu Kullanma





Görev başarısız olmaya devam etse de, aktivitenin alt kısmında ignore_errors=true komutunu belirtirseniz başucu kitabı çalışmaya devam eder. Görevin tamamlanmasını veya başarısızlıklarını önemsemesine rağmen, yine de bir sonraki faaliyeti yürütür. Bir şekilde aktivite başarısız olursa, bir sonrakine geçilir. Eğer aktivite başarılı olursa bundan sonra bir süreci tamamlar.

2. Ansible'da Kontrol Modunu Kullanma



Bir görevi atlamak veya Ansible'ın denetim yöntemi sürümü kullanıldığında bir görevdeki hataları göz ardı etmek için, Ansible denetim yönteminde olduğunda True olarak tanımlanan Boolean özel değişkenlerini, Ansible denetim modunu kullanın.

3. Ansible Playbook'ta Failed=When Komutunu Kullanma

Ansible'da, her etkinlik için ima edilen 'başarısızlık' ne olursa olsun belirtmek için fail_When koşul koşulunu da kullanabiliriz. Tüm Ansible koşullu ifadelerine benzer şekilde, sayısız başarısız_zamanlı ölçüt listesi bir örtük ile birleştirilir. Bu nedenle, görev yalnızca tüm koşullar yerine getirildiğinde başarısız olur.

Ansible'daki Hataları Yoksaymak için Ön Koşullar

Ansible yapılandırma aracı, somut örneği içerecek şekilde gerekli kriterlere uymalıdır:

  • Bir Ansible ana sunucusu veya bir kontrol sunucusunun gerekli olduğunu söyleyebiliriz, böylece hedef cihazdaki komutları yapılandırabiliriz.
  • Ansible yazılımındaki hataları göz ardı etmenin farklı yollarını kullanmak üzere her biriyle iletişim kurabilmemiz için yerel ana makinelere sahip olmamız gerekir. Bu örnekte yerel ana bilgisayarı, etkinlik süresince hedef uzak sunucu olarak kullanıyoruz.
  • Oyun kitaplarını yazarız, Ansible yoksay hata komutlarını çalıştırırız ve uzak ana bilgisayarlardaki sonuçları izlemek için ansible-denetleyici cihazını kullanırız.

Öğrencinin bir Ansible başucu kitabında yok sayma hatasını kullanma ilkesini kavramasına yardımcı olmak için aşağıdaki örneği uygulayalım:

Örnek: Ignore_Errors=True Komutunu Kullanma

Bu, uygulama için Ansible'ı kullanan en basit örnektir ve başucu kitabına birkaç görev ekleriz ve bu görevleri, error error komutunu kullanarak yürütürüz. Bunun için öncelikle Ansible terminaline aşağıdaki kodu yazıyoruz:

[ kök @ usta sorumlu ] # nano ignore_errors.yml

ignore_errors.yml çalışma kitabının oluşturulması ve başlatılmasının ardından, şimdi çalışma kitabına komutları girmeye başlıyoruz. İlk olarak, sağlanan ana bilgisayarları 'localhost' olarak geçirerek 'hosts' seçeneğini kullanıyoruz. Başucu kitabını çalıştırdığımızda yerel sunucu hakkında ek bilgi elde edemeyeceğimiz için 'gerçeği topla' bağımsız değişkenine 'yanlış' değeri giriyoruz.

Bundan sonra, tamamlamak istediğimiz her görevi 'görevler' seçeneği altında listelemeye başlıyoruz. İlk görevde Ansible dizininde olmayan belgeyi görüntülüyoruz. Öncelikle uygulamak istediğimiz görevin başlığını geçiyoruz. Ardından, komut seçeneğini kullanarak var olmayan metin belgesini depolarız ve ilk görevde komutu çalıştırabilmemiz için “ls” kullanırız. İlk görevden sonra, ignore_errors=true komutunu kullanıyoruz, böylece eğer ignore ifadesinin üzerindeki görevde bir hata olursa görevi yok sayar ve bir sonraki göreve geçip onu yürütür.

Kullanılan başka bir görevi listeliyoruz. İlk görev başarısız olursa, Ansible aracının bir sonraki görevi yürütmesi gerekir. Ardından, görevi oyun kitabında çalıştırmak için debug parametresini kullanırız.

- ana bilgisayarlar: yerel ana bilgisayar
toplama_gerçekleri: YANLIŞ
görevler:
- isim: Var olmayanı listele dosya
emretmek: ls var olmayan.txt
yoksay_hatalar: doğru

- isim: devam etmek başarısız olduktan sonra görev
hata ayıklama:
mesaj: 'Başarısızlıktan sonra göreve devam et'

Şimdi, yoksay hata komutunu yürütmek ve kontrol etmek için yeterli görevi listeliyoruz. Şimdi oyun kitabını sonlandırıyoruz ve ana terminale geri dönüyoruz. Ardından oyun kitabını çalıştırıyoruz. Bunun için aşağıdaki ifadeyi kullanıyoruz:

[ kök @ usta sorumlu ] # ansible-playbook ignore_errors.yml

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktıyı alıyoruz. Gördüğünüz gibi, var olmayan bir dosyayı listeleyen ilk görev bir başarısızlık gösteriyor. Ancak ikinci görev başarılı bir şekilde yürütüldü çünkü başucu kitabında ignore_error=true kullanarak ilk görevi yok saydık.

Çözüm

Ansible'da yoksayma hatasının ne anlama geldiğini öğrendik. Ansible oyun kitabında nasıl çalıştığını tartıştık. Ansible'da görevleri yürütürken hatayı yok saymanın farklı yollarını da tartıştık. Her kavramın kullanıcı için net olması için bir örnek uyguladık.