05_check_k8s_services.yml - Kullanım Kılavuzu
Amaç
Bu playbook, sistemde bulunan Kubernetes/container ile ilgili tüm systemd servislerini dinamik olarak keşfedip (sabit bir liste değil, kube|containerd|calico|etcd|runc desenine göre arama) her birinin aktif/enabled durumunu ve son 10 satır logunu raporlar.
Gereksinimler
hosts: all— her node’da çalışır.- Servis keşfi Ansible’ın yerleşik
service_factsmodülüyle yapılır, ek bir collection gerekmez. journalctlçıktısı okunabilmesi için ilgili kullanıcının journal loglarına erişimi olmalıdır.
Çalıştırma Komutu
ansible-playbook -i inventories/musteri_a/hosts.ini playbooks/05_check_k8s_services.yml
# Belirli bir host/grup ile sınırlamak için:
ansible-playbook -i inventories/musteri_a/hosts.ini playbooks/05_check_k8s_services.yml --limit worker1
Örnek Çıktı
TASK [Ping pong] ***************************************************************
ok: [203.0.113.10]
TASK [Servis durum raporu - aktif/enabled (Çalışma Şartı: ilgili servis bulunmalı)] ***
ok: [203.0.113.10] => (item=containerd.service) => {"msg": "containerd.service -> durum: running, açılışta aktif: enabled"}
ok: [203.0.113.10] => (item=kubelet.service) => {"msg": "kubelet.service -> durum: running, açılışta aktif: enabled"}
TASK [Servis log raporu (Çalışma Şartı: log kaydı alınabilmeli)] ***************
ok: [203.0.113.10] => (item=kubelet.service) => {
"msg": "===== kubelet.service son loglar =====\n... (son 10 satır) ..."
}
Notlar
- Servis listesi tamamen dinamiktir:
service_factsile sistemdeki tüm servisler taranır, yalnızca isim deseni eşleşenler (kube,containerd,calico,etcd,runc) rapora dahil edilir. Docker bu desenin dışındadır. - Log satır sayısı 10 ile sınırlıdır — çok sayıda servis/host için çalıştırıldığında çıktının okunabilir kalması amaçlanıyor.
.get('state', ...)/.get('status', ...)kullanılmıştır çünkü bazı servis girdileriservice_factsçıktısında eksik alanlarla gelebiliyor.