Ana içeriğe geç

Ansible

Okunuşu
ensıbıl
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/ansible

Kısaca

Ansible, YAML playbook'larını ajan kurmadan SSH üzerinden çalıştırarak sunucuları yapılandıran ve uygulama dağıtan açık kaynaklı bir otomasyon aracıdır.

Ansible nedir?

Ansible, 2012'de Michael DeHaan tarafından geliştirildi ve 2015'ten bu yana Red Hat'in bir parçası. İnsanların eskiden sunuculara tek tek bağlanarak yaptığı işleri otomatikleştirir: paket kurmak, yapılandırma dosyalarını düzenlemek, kullanıcı oluşturmak, servisleri yeniden başlatmak ve bir uygulamanın yeni sürümlerini dağıtmak.

İş, host grupları üzerinde çalıştırılacak görevleri listeleyen YAML dosyaları olan playbook'larda tarif edilir. Her görev bir modül çağırır: paket kurmak için apt, dosya yerleştirmek için copy, bir servisi yeniden başlatmak için service gibi. Yönetilecek makineler bir envanterde (inventory) listelenir; Ansible onlara SSH ya da Windows için WinRM üzerinden bağlanır, böylece makinelere Python dışında hiçbir şey kurmak gerekmez.

Modüllerin çoğu idempotent'tir: önce mevcut durumu denetler ve yalnızca bir şey farklıysa işlem yapar. Bu yüzden bir playbook'u iki kez çalıştırmak sunucuları aynı durumda bırakır; bu da bir makine filosunu tutarlı tutmak için playbook'u tekrar tekrar uygulamayı güvenli kılar. Roller, yeniden kullanılabilir görev setlerini paketler; Ansible Galaxy de topluluğun hazırladığı rolleri ve koleksiyonları paylaşır.

Sık yapılan bir yanlış, Ansible ile Terraform'un rakip olduğu düşüncesidir. Terraform genellikle altyapının kendisini oluşturmak için, Ansible ise makinelerde çalışanları yapılandırmak için kullanılır; konteynerler ve değiştirilemez imajlar da bu işin bir kısmının yerini almıştır. Puppet ya da Chef gibi araçların aksine Ansible, her sunucuda bir ajan çalıştırmak yerine değişiklikleri bir kontrol makinesinden iter.

Önemli noktalar

  • Ansible, sunucu yapılandırmasını ve uygulama dağıtımını otomatikleştirir.
  • Görevler YAML playbook'larında yazılır ve bir host envanterine karşı çalıştırılır.
  • Ajansızdır: SSH ile bağlanır ve host'larda yalnızca Python'a ihtiyaç duyar.
  • İdempotent modüller, bir playbook'u tekrar tekrar çalıştırmayı güvenli kılar.
  • Genellikle Terraform gibi araçların oluşturduğu makineleri yapılandırır.

Örnek

Nginx'i kurup başlatan bir playbookyaml
- name: Set up web servers
  hosts: web
  become: true
  tasks:
    - name: Install nginx
      ansible.builtin.apt:
        name: nginx
        state: present
        update_cache: true

    - name: Make sure nginx is running
      ansible.builtin.service:
        name: nginx
        state: started
        enabled: true

# Run with: ansible-playbook -i inventory.ini site.yml

Sık sorulan sorular

Ansible her sunucuda bir ajan gerektirir mi?

Hayır. Ansible ajansızdır: bir kontrol makinesinden SSH (Windows'ta WinRM) ile bağlanır ve modüllerini orada çalıştırır; yönetilen host'larda yalnızca Python gerekir.

Ansible playbook nedir?

Her biri bir host grubunu paket kurma, dosya kopyalama ve servis yeniden başlatma gibi bir dizi göreve eşleyen play'leri listeleyen bir YAML dosyasıdır.

Ansible'da idempotent ne demek?

Aynı görevi iki kez çalıştırmanın bir kez çalıştırmakla aynı sonucu vermesi demektir. Paket kuran bir modül, paket zaten kuruluysa hiçbir şey yapmaz.

Sık karşılaştırılanlar

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar