← All projects

ansible-playbooks

● Python ★ 0 ⑂ 0 Last updated: July 30, 2026

Ansible Playbooks

License: MIT Version CI Docs

Ansible Kubernetes Docker On-Premises Air-Gapped

Kubernetes cluster'ları ve sunucular için sağlık kontrolü, raporlama ve bakım amaçlı Ansible playbook koleksiyonu.

Tüm playbook'ların detaylı kullanım kılavuzlarına GitHub Pages Dokümantasyonu üzerinden erişebilirsiniz.

Kurulum

İşletim sistemine göre ayrı kurulum talimatları için: docs/00_installation.md

Hızlı başlangıç:

ansible-playbook -i inventories-example/musteri_a/hosts.ini playbooks/01_check_pod_health.yml

Yapı

playbooks/           Playbook dosyaları (01-42, numaralandırılmış)
playbooks/tasks/     Paylaşılan/tekrar kullanılan görev listeleri (import_tasks ile çağrılır)
playbooks/files/     Hedef sunuculara kopyalanacak statik betik ve yapılandırma dosyaları
inventories-example/ Örnek inventory dosyaları (musteri_a örnek olarak repoda)
inventories/         Gerçek ortam inventory'leri (tümü gitignore'lu)
docs/                Her playbook için kullanım kılavuzu (numarayla eşleşir)

Playbook'lar

# Playbook Açıklama Salt-okunur mu?
00 Kurulum talimatları
01 check_pod_health Kubernetes pod sağlık durumu
02 check_open_nodeports Açık NodePort'ları bulur, browser linki üretir
03 check_docker_containers Docker container durumu ve port linkleri
04 check_k8s_versions kubectl/kubeadm/kubelet/containerd/runc/etcd sürüm raporu
05 check_k8s_services K8s/container servislerinin durumu ve son logları
06 update_k8s_services kubeadm ile K8s stack güncellemesi ⚠️ Hayır — cluster'ı değiştirir
07 check_calico Calico sürümü, opsiyonel güncelleme ⚠️ Sadece calico_manifest_url verilirse değişiklik yapar
08 check_server_time Sunucu zamanı/saat dilimi ve zaman senkron servisi
09 set_server_timezone Saat dilimini Europe/Istanbul yapar ⚠️ Hayır — sistem ayarını değiştirir
10 check_system_health OS/CPU/RAM/disk/süreç/sanallaştırma raporu
11 check_monitoring_tools İzleme araçlarını kurar/kontrol eder, örnek çıktı ve yorum üretir ⚠️ Eksik araçları kurar
12 get_argocd_password ArgoCD admin şifresini okur
13 check_journal_errors journalctl kernel + sistem hata/uyarı logları
14 check_metrics_server metrics-server kurulu/Available mı
15 get_metrics_server_stats kubectl top node/pod istatistikleri
16 ensure_metrics_server Yoksa kurar, sonra top istatistikleri ⚠️ Eksikse kurar
17 check_container_images Host imaj envanteri (yüklü/kullanımda/tarih)
18 prune_unused_images Kullanılmayan imajları listeler / onayla siler ⚠️ image_prune_confirm=true ile siler
19 check_network_connectivity DNS/TCP/HTTP/proxy ile internet erişim profili
20 check_host_ports_firewall Dinleyen portlar, bind tipi, süreç + iptables/nft/UFW
21 check_tls_certificates K8s/PKI + Ingress domain/süre + TLS secret’lar
22 check_k8s_warning_events Kubernetes Warning event özeti
23 check_storage_health Disk/inode + runtime disk + PV/PVC
24 check_node_capacity Node conditions + capacity/requests/usage
25 check_etcd_controlplane etcd / control-plane sağlık (k3s+kubeadm)
26 check_cronjobs_jobs CronJob envanteri + Failed Job’lar
27 check_cluster_dns CoreDNS / cluster DNS
28 check_network_policies NetworkPolicy envanteri
29 backup_k8s_etcd etcd yedeği (k3s/kubeadm) alır ⚠️ Hayır — diske snapshot yazar ve eski yedekleri temizler
30 check_large_files Sistemdeki 1GB+ büyük dosyaları bulur
31 check_external_endpoints Dış API/Web servislerine erişimi test eder
32 verify_etcd_backup Son etcd snapshot bütünlüğü ve opsiyonel izole restore testi ⚠️ Restore testi opsiyonel
33 check_upgrade_readiness Kubernetes yükseltme öncesi engel ve deprecated API kontrolü
34 check_workload_resilience Probe, resource, replica, PDB ve image dayanıklılık denetimi
35 check_service_endpoints Service / EndpointSlice hazır backend sağlığı
36 check_pod_security_posture Pod Security Admission ve container güvenlik duruşu
37 check_rbac_risks cluster-admin, wildcard ve privilege escalation RBAC riskleri
38 check_control_plane_security API server, audit, encryption-at-rest ve PKI izinleri
39 diagnose_unschedulable_pods Pending ve başlatılamayan pod kök neden analizi
40 check_node_baseline_drift Node OS/kernel/cgroup/containerd/kubelet drift karşılaştırması
41 patch_and_reboot_nodes Sıralı drain, paket güncelleme, reboot ve uncordon ⚠️ Açık onayla değiştirir
42 generate_support_bundle Redakte edilmiş Kubernetes/sistem tanı arşivi ⚠️ Controller'a arşiv yazar

Her playbook'un tam kullanım kılavuzu (gereksinimler, örnek çıktı, notlar) docs/ klasöründe numarayla eşleşen dosyadadır.

CI

Her push/PR'da GitHub Actions ile yamllint, ansible-lint, örnek inventory doğrulaması, yardımcı betik kontrolleri, doküman eşleşmesi, Kubernetes yükseltme politikası davranış testleri ve tüm playbook'lar için --syntax-check çalışır. CI araç sürümleri requirements-ci.txt içinde sabitlenmiştir.

Inventory'ler

  • inventories-example/ — Repoda tutulan örnek inventory dosyaları (örn: musteri_a placeholder host/şifre değerleriyle).
  • inventories/ — Gerçek müşteri/production ortam inventory'leri için ayrılmıştır. Bu klasörün tamamı .gitignore ile repodan hariç tutulmuştur ve sadece yerel olarak bulunur.

Kendi ortamınız için inventories-example/musteri_a/hosts.ini'yi örnek alıp inventories/ altında yeni bir klasör oluşturabilirsiniz.

Air-gap ortamlarda dış kaynağa ihtiyaç duyan kurulum playbook'larının manifest URL'lerini iç mirror veya hedef host'taki önceden kopyalanmış dosya yollarıyla değiştirin. Gerekli container imajlarının da ortamın kendi registry'sinde bulunması gerekir.