Skip to main content
Altyapı

Ansible ile Konfigürasyon Yönetimi Rehberi

Mart 15, 2026 3 dk okuma 8 views Raw
Ansible konfigürasyon yönetimi görseli
İçindekiler

Ansible Nedir?

Ansible, Red Hat tarafından desteklenen açık kaynaklı bir konfigürasyon yönetimi, uygulama dağıtımı ve otomasyon aracıdır. Agentsız (ajansız) mimarisi sayesinde hedef sunuculara herhangi bir yazılım kurulumu gerektirmeden SSH üzerinden çalışır. Bu özelliği Ansible'ı diğer konfigürasyon yönetimi araçlarından ayıran en önemli avantajdır.

YAML tabanlı basit sözdizimi ile teknik olmayan ekip üyelerinin bile otomasyon betiklerini okuyup anlayabilmesini sağlar. Ansible, altyapı yönetimini kod olarak tanımlama (Infrastructure as Code) yaklaşımının en erişilebilir araçlarından biridir.

Ansible Mimarisi

Ansible'ın çalışma yapısı şu bileşenlerden oluşur:

  • Control Node: Ansible'ın çalıştırıldığı merkezi makine
  • Managed Nodes: Yönetilen hedef sunucular
  • Inventory: Yönetilecek sunucuların listesi
  • Modules: Belirli görevleri gerçekleştiren yeniden kullanılabilir birimler
  • Playbooks: Görev dizilerini tanımlayan YAML dosyaları
  • Roles: Playbook'ları organize eden yapılar

Agentsız Mimari Avantajı

Chef ve Puppet gibi araçlar hedef sunuculara agent yazılımı kurulmasını gerektirirken, Ansible yalnızca SSH erişimi ile çalışır. Bu yaklaşımın avantajları şunlardır:

  1. Hedef sunucularda ek yazılım bakımı gerekmez
  2. Güvenlik yüzeyi azalır
  3. Kurulum süresi kısalır
  4. Kaynak tüketimi minimum düzeyde kalır

Ansible Playbook Yapısı

Playbook'lar Ansible'ın temel otomasyon birimleridir. YAML formatında yazılır ve bir dizi görevi sıralı olarak tanımlar. Temel playbook bileşenleri:

  • Hosts: Görevlerin çalıştırılacağı sunucu veya grup
  • Tasks: Sırasıyla çalıştırılacak görevler listesi
  • Handlers: Tetiklendiğinde çalışan görevler
  • Variables: Dinamik değerler için değişkenler
  • Templates: Jinja2 şablonları ile dinamik konfigürasyon dosyaları

Ansible Modülleri

Ansible, binlerce yerleşik modül ile geniş bir otomasyon yelpazesi sunar:

Modül KategorisiÖrnek ModüllerKullanım Alanı
Sistemuser, group, cron, serviceSistem yönetimi
Dosyafile, copy, template, lineinfileDosya işlemleri
Paketapt, yum, pip, npmPaket yönetimi
Bulutec2, azure_rm, gcp_computeBulut kaynakları
Veritabanımysql_db, postgresql_dbVeritabanı yönetimi
uri, get_url, firewalldAğ işlemleri

Ansible Roles ile Kod Organizasyonu

Roller, playbook'ları yeniden kullanılabilir ve modüler parçalara ayırmanın en etkili yoludur. Standart bir role yapısı şu dizinleri içerir:

  • tasks/: Ana görevlerin tanımlandığı dizin
  • handlers/: Tetikleyici görevler
  • templates/: Jinja2 şablon dosyaları
  • files/: Statik dosyalar
  • vars/: Rol değişkenleri
  • defaults/: Varsayılan değişken değerleri
  • meta/: Rol bağımlılıkları

Ansible Galaxy, topluluk tarafından paylaşılan binlerce hazır role içerir. Tekerleği yeniden icat etmek yerine, mevcut rolleri kullanarak zamandan tasarruf edin.

Ansible ile Yaygın Kullanım Senaryoları

Sunucu Provizyon

Yeni sunucuların standart bir konfigürasyonla hazırlanması. Güvenlik ayarları, kullanıcı hesapları, SSH yapılandırması ve temel paketlerin kurulumu tek bir playbook ile otomatikleştirilir.

Uygulama Dağıtımı

Uygulamaların sıfır kesinti ile dağıtılması. Rolling update stratejisiyle sunucular sırayla güncellenir ve herhangi bir sorun durumunda otomatik geri alma yapılır.

Güvenlik Uyumluluğu

CIS Benchmark gibi güvenlik standartlarının tüm sunucularda tutarlı şekilde uygulanması. Düzenli denetimlerle sapmaların tespit edilip düzeltilmesi.

Ansible vs Diğer Araçlar

ÖzellikAnsiblePuppetChefTerraform
MimariAgentsızAgent tabanlıAgent tabanlıAgentsız
DilYAMLPuppet DSLRubyHCL
Öğrenme eğrisiDüşükOrtaYüksekOrta
OdakKonfigürasyonKonfigürasyonKonfigürasyonAltyapı provizyon

En İyi Uygulamalar

Ekolsoft olarak sunucu yönetimi projelerimizde Ansible kullanırken edindiğimiz deneyimlere dayanarak şu önerileri sunuyoruz:

  1. Playbook'larınızı version control ile yönetin
  2. Hassas verileri Ansible Vault ile şifreleyin
  3. İdempotent görevler yazarak tekrar çalıştırmalarda sorun yaşamayın
  4. Rolleri kullanarak kodunuzu modülerleştirin
  5. Molecule ile playbook testleri yazın
  6. Inventory'leri dinamik tutarak bulut kaynaklarını otomatik keşfedin

Sonuç

Ansible, basitliği ve gücüyle konfigürasyon yönetimi ve otomasyon dünyasında öncü bir araçtır. Agentsız mimarisi, YAML tabanlı sözdizimi ve geniş modül ekosistemi ile her ölçekte altyapıyı verimli bir şekilde yönetmenizi sağlar. Infrastructure as Code yaklaşımını benimseyerek altyapı yönetimi süreçlerinizi tekrarlanabilir, denetlenebilir ve güvenilir hale getirin.

Bu yazıyı paylaş