Aynı işi onlarca sunucuda elle yapmak, hem zaman alır hem de her seferinde biraz farklı bir sonuç üretir. Ansible bu sorunu, yapılacak işi bir kez yazıp tekrar tekrar aynı şekilde uygulayarak çözer.
Ansible; Red Hat tarafından desteklenen, hedefte kalıcı ajan gerektirmeyen açık-kaynak konfigürasyon yönetimi ve otomasyon aracıdır. Hedef makinelerde daemon çalıştırmaz; Linux/Unix sistemlerde genelde SSH ve uzak Python yorumlayıcısı ile, Windows sistemlerde ise WinRM veya desteklenen SSH akışıyla çalışır. Bu basitlik, Ansible’ı küçük sunucu filolarından büyük operasyonlara kadar aynı disiplinle kullanılabilir kılar.
Konfigürasyon dili YAML‘dır (playbook’lar); değişken ikamesi için Jinja2 kullanılır. Yeniden kullanımın birimi rol‘dür (bir hizmetin tüm konfigürasyon paketi); topluluk paylaşımı Ansible Galaxy ve Automation Hub üzerinden yapılır. Modüller koleksiyonlarda gruplanır (ansible.builtin, community.general, amazon.aws, community.windows, …).
Temel bileşenler
| Bileşen | Ne işe yarar |
|---|---|
| Playbook | YAML dosyası; bir veya daha fazla play içerir; her play bir host grubuna görevleri uygular. |
| Task | Tek bir modül çağrısı; bir kullanıcı açmak, paket kurmak, servis başlatmak gibi. |
| Role | Bir hizmete ait tüm görev / şablon / dosya / default / handler paketi. Yeniden kullanımın birimi. |
| Inventory | Hedef host’ların ve gruplarının listesi (statik INI/YAML veya dinamik plugin). |
| Module | Ansible’ın hedefte çalıştırdığı iş birimi (copy, package, service, user, …). |
| Collection | Modül + rol + plugin paketi. Galaxy / Automation Hub üzerinden dağıtılır. |
| Vault | ansible-vault komutu ile şifrelenen sırlar (parola, TLS anahtarı, API token). |
Ansible Community Edition mi, Automation Platform mı?
Sık karıştırılan bu ikisinin farkı ürün / lisans / destek düzeyindedir; playbook dili aynıdır.
| Özellik | Community Edition (ansible-core + AWX) | Red Hat Ansible Automation Platform |
|---|---|---|
| Lisans | Açık kaynak (GPLv3) | Ticari abonelik (yıllık) |
| Maliyet | Ücretsiz | Managed node başına lisans; kurumsal bütçe |
| Destek | Topluluk, GitHub Issues | Red Hat kurumsal destek (SLA’lı) |
| Web arayüz / RBAC / zamanlama | AWX (topluluk) veya Ascender | Automation Controller (eski Tower) |
| Koleksiyon deposu | Ansible Galaxy (public) | Automation Hub (private + Red Hat sertifikalı) |
| Execution Environments | Elle yönetilir (Podman / Docker) | Hazır, imzalı, sertifikalı imajlar |
| Event-Driven Ansible | Açık kaynak sürüm mevcut | Entegre, desteklenen sürüm |
| Uygulanabilirlik | KOBİ, mid-market, kendi yetkin ekibi olan kurumlar | Regüle sektör, resmi destek zorunluluğu olan büyük kurum |
Mono varsayılan önerisi: ansible-core + AWX / Ascender. Yasal olarak Red Hat imzalı içerik ya da OEM destek zorunluysa AAP. Detaylı AWX ↔ AAP karşılaştırması için AWX / Ascender sayfamıza bakın.
Operasyon modeli
- Inventory dinamik kaynaklardan gelebilir; cloud API, NetBox veya düz YAML kombinasyonu kullanılabilir.
- Secrets için
ansible-vaultveya harici secret manager tercih edilir. - Roller tek sorumluluklu tutulur; kullanıcı, paket, servis, güvenlik sıkılaştırma ve uygulama kurulumları ayrılır.
- Test için Molecule ve CI tabanlı dry-run akışı kullanılır.
- Terraform/OpenTofu kaynak oluşturur; Ansible işletim sistemi ve uygulama katmanını hazırlar.
Başlangıç kapsamı
Yeni bir Linux sunucuda tipik ilk kapsam; hostname, kullanıcı ve SSH anahtarları, sudo politikası, NTP, paket güncellemeleri, log shipping, izleme ajanı, temel güvenlik sıkılaştırması ve gerekirse uygulama kurulumu olur. Süre ve sıra ortamın standartlarına göre değişir.
Ansible mı, Terraform mu?
Kısa cevap: ikisi de, farklı katmanlar için.
| Katman | Doğru araç |
|---|---|
| Bulut kaynağı yaratma (VM, VPC, IAM, S3 bucket, DNS kaydı) | Terraform / OpenTofu |
| Kubernetes cluster provisioning (EKS, GKE, AKS) | Terraform / OpenTofu |
| İşletim sistemi kurulumu ve konfigürasyonu | Ansible |
| Uygulama dağıtımı (paket, konfig, servis) | Ansible |
| Ağ cihazı (switch, firewall) konfigürasyonu | Ansible (Cisco IOS, Arista EOS, Juniper JunOS, FortiOS koleksiyonları) |
| Operasyonel görev (yeniden başlatma, patch, kullanıcı silme) | Ansible |
| CI/CD pipeline tetikleyicisi | GitLab CI, ArgoCD (ikisi de değil) |
Terraform çıktısı Ansible envanterine besleme, endüstride standart bir desendir (terraform-inventory, cloud.terraform koleksiyonu).
Windows ve ağ cihazları
Ansible sadece Linux’a bağlı değildir. Windows Server yönetimi (WinRM üzerinden), Active Directory ve GPO yönetimi, Cisco / Arista / Juniper / Fortinet ağ cihazı konfigürasyonu, F5 load balancer politikaları, Palo Alto NGFW kural yönetimi , hepsi ilgili koleksiyonlarla mümkündür. Karma filolarda tek envanter ve tek CI’dan yönetim, ayrı ayrı araç maliyetini ortadan kaldırır.
Yaygın sorunlar ve çözümler
- Yavaş playbook’lar:
gather_facts: falseile hızlandırın; gerekli olduğundagather_subsetile sadece ihtiyaç duyulan bilgiyi toplayın.pipelining = True(ansible.cfg) vestrategy: freebazı filolarda akışı iyileştirebilir. becomepermission denied: Hedef host’ta sudo NOPASSWD veya--ask-become-pass/become_passwordile sırrın doğru iletildiğinden emin olun. Vault ile şifrelenmiş sudo parolası standart yaklaşımdır.- Versiyon kayması:
ansible-coresürümü ile koleksiyon sürümlerinirequirements.ymldosyasında pin’leyin. Execution Environment (Podman imajı) kullanmak sürüm sürüklenmesini tamamen elimine eder. - Idempotency kırılması:
shellmodülünü kullanmak yerine native modüller. Şart olduğundachanged_when: falseile idempotent shell komutları işaretleyin; koşulsuz “hep değişmiş görünen” görevleri ayıklayın. No module named 'X': Hedef host’un Python sürümü modülün istediğinden düşük.ansible_python_interpreterile doğru yorumlayıcıyı gösterin veya Execution Environment içine paketleyin.
Kim için uygun, kim için değil
- Uygun: çok sayıda Linux sunucusunda paket, servis, kullanıcı ve dosya standardizasyonu yapan ekipler
- Uygun: altyapı kurulduktan sonra uygulama konfigürasyonunu ve bakımını kodla yönetmek isteyen DevOps ekipleri
- Uygun: Linux, Windows ve ağ cihazlarını tek envanterden yönetmek isteyen karma ortamlar
- Uygun değil: yalnızca bulut kaynağı oluşturma ihtiyacı olanlar; burada OpenTofu/Terraform daha doğru araçtır
- Uygun değil: birkaç sunucuda, nadiren değişen ve elle yönetimi zorlamayan küçük ortamlar
Maliyet kalemleri
Ansible’ın çekirdeği ücretsizdir; maliyet işletme tarafında oluşur:
- Playbook ve envanter bakım emeği
- Modül/koleksiyon sürüm uyumunun takibi
- Büyük envanterlerde yanlış hedefleme riskini azaltmak için test ve dry-run disiplini
- Red Hat destekli kurumsal yönetim isteniyorsa AAP abonelik lisansı
Resmi kaynaklar
Sıkça sorulan sorular
Ansible nedir, ne işe yarar?
Ansible ücretsiz mi?
Ansible Tower artık ne oldu?
Ansible mi Terraform mu?
Ansible ile Windows sunucuları yönetilir mi?
ansible.windows ve community.windows koleksiyonları paket kurulumu (Chocolatey / winget), IIS, Active Directory, MSI dağıtımı, Registry ve PowerShell DSC modüllerini içerir. Karma Linux/Windows filoları için tek envanterden yönetim mümkündür.Ajan gerektirmemesi bir kısıtlama mı?
ProxyCommand ile de çalışır. Push modeli olduğu için büyük envanterlerde paralellik --forks ile ayarlanır; değer ortamın ağ ve hedef kapasitesine göre test edilmelidir.Ansible'da idempotence nasıl sağlanır?
ansible.builtin.copy, package, service, lineinfile); bu modüller mevcut durumu okur, yalnızca gerekliyse değiştirir. shell / command modüllerinden kaçının; şart ise creates, removes ya da changed_when argümanlarıyla durum kontrolü ekleyin. CI pipeline’da her PR için ansible-playbook --check --diff ve rol testleri Molecule ile çalıştırılsın.
