Ansible çıktıları ile işlemler


Ansible rolleri veya playbooklar yazarken, bolca koşullar ile uğraşmak, kaynaklanan hataları handle etmek gerekiyor. Bu yazıda yapılan iş, her ne kadar ufak gibi gözükse de her koşulda ve durumda kullanılabilecek bir iskelet sistemi anlatacağım.

Bash ile programlama yaparken, ki ben bu türdeki dilleri text işleme olarak değerlendiriyorum.

Çünkü bu dili kulllanırken olarak sistemi sed, awk gibi toollar ile kontrol edip gelen çıktıya göre şunu yap diye sistemi yönlendiriyoruz.

Ancak Ansible kullanırken bunlara ek olarak, sistemin biraz daha OOP yapısında olmasına sağlıyor ve gelen cevapların normal bash çıktısına oran ile biraz daha standarda sahip olduğu JSON yapısında cevaplar döndürüyor dönüyor.

Örnek vermek gerekirse

echo "Ansible çok güzel sende gel" ansible karşılığı

Eğer kodu yazmış olsaydınız return code(rc) çıktısını echo $? diye sorarak öğrenecek ve işlemi bu şekilde devam ettirecektiniz.

Gördüğünüz gibi bir çok cevabı tek bir json paketi içinde verebiliyor. Yani uzun lafın kısası output.[end|stdout|start] gibi elemanları daha fazla çıktı ile kontrol edebilme yeteneğine sahip oluyorsunuz.

Aşağıdaki örneği az biraz kurcalarsanız, ne yapıp yapmadığını kavrayıp ve kullanmaya devam edebilirsiniz.

Gördüğünüz gibi normalde hata almamız gerekirken kodun çıktısında failed=0 olduğunu ve playbook’un sorunsuz çalıştığını görüyorsunuz.

Umarım işinize yarar.