Ansible nedir ?

Ansible nedir ?

Ansible, yapılandırma yönetimi, dağıtım ve otomasyon için kullanılan bir açık kaynaklı yazılım aracıdır. Sunucuları, ağ cihazlarını, bulut hizmetlerini ve diğer sistemleri yapılandırmak ve yönetmek için kullanılabilir. Ansible, YAML tabanlı bir dil kullanarak basit ve okunabilir senaryolar oluşturmanıza olanak tanır.

Ansible'ı kullanarak bir web sunucusunu yapılandırmak için detaylı bir örnek:

Adım 1: Ansible Kurulumu

Ansible'ı çalıştırmak için, kontrol ettiğiniz makinede (örneğin, kişisel bilgisayarınızda veya bir sunucuda) Ansible'ı yüklemeniz gerekir. Genellikle bir Python paketi olarak yüklenir:

pip install ansible        

Adım 2: İnventory (Envanter) Oluşturma

Ansible'ın yöneteceği hedef makinelerin IP adreslerini veya isimlerini içeren bir envanter dosyası oluşturmanız gerekmektedir. Örneğin, inventory.ini adında bir dosya oluşturabilirsiniz:

[servers]
webserver ansible_host=192.168.1.100        

Adım 3: YAML Playbook Oluşturma

Ansible, YAML tabanlı playbook'lar aracılığıyla işleri gerçekleştirir. Bir playbook, hedef makinelerde çalıştırılacak görevleri tanımlar. Örneğin, webserver.yml adında bir playbook oluşturalım:

---
- name: Web Sunucusu Kurulumu
  hosts: servers
  become: yes
  tasks:
    - name: Apache HTTP Sunucusu Kurulumu
      apt:
        name: apache2
        state: present

    - name: Apache hizmetinin başlatılması
      service:
        name: apache2
        state: started
        enabled: yes

    - name: Basit HTML sayfasının oluşturulması
      copy:
        content: "<html><body><h1>Merhaba, Dünya!</h1></body></html>"
        dest: /var/www/html/index.html
        

Bu playbook, servers grubundaki tüm makinelerde Apache HTTP Sunucusunu kuracak ve basit bir HTML sayfasını yayınlayacaktır.

Adım 4: Playbook'un Çalıştırılması

Artık playbook'u çalıştırabiliriz:

ansible-playbook -i inventory.ini webserver.yml        

Bu komut, inventory.ini dosyasındaki sunuculara playbook'u uygular.

Bu örnekte, bir web sunucusu yapılandırmak için basit bir Ansible playbook'u oluşturduk ve çalıştırdık.


Ansible'ı CI/CD (Continuous Integration/Continuous Deployment) süreçlerinde kullanarak yazılım geliştirme ve dağıtım süreçlerini otomatikleştirmek oldukça yaygın. Aşağıda bir CI/CD pipeline'ı oluşturmak için detaylı bir örnek yapalım:

Adım 1: Depo Yapısını Oluşturma

Projeniz için bir Git depo oluşturun ve aşağıdaki gibi bir dizin yapısı oluşturun:

my_project/
├── ansible/
│   └── playbook.yml
├── app/
│   └── (Uygulama dosyaları)
└── .gitlab-ci.yml        

Adım 2: Ansible Playbook Oluşturma

Projeyi dağıtmak için bir Ansible playbook'u oluşturun. Örneğin, playbook.yml adında bir dosya oluşturun:

---
- name: Proje Dağıtımı
  hosts: servers
  become: yes
  tasks:
    - name: Uygulama sunucusunda güncelleme yap
      git:
        repo: <uygulama_github_repo_url>
        dest: /path/to/app
        version: main
        update: yes
      notify:
        - Restart Uygulama
  handlers:
    - name: Restart Uygulama
      service:
        name: uygulama_servis
        state: restarted        

Bu playbook, uygulama sunucusunda belirli bir GitHub deposundan kodu çeker, uygulamayı günceller ve ardından uygulama servisini yeniden başlatır.

Adım 3: CI/CD Pipeline Konfigürasyonu (GitLab CI/CD)

.gitlab-ci.yml dosyasını oluşturun:

stages:
  - deploy

deploy:
  stage: deploy
  script:
    - ansible-playbook -i ansible/inventory.ini ansible/playbook.yml
  tags:
    - deploy        

Bu GitLab CI/CD konfigürasyonu, deploy adında bir aşama oluşturur ve bu aşamada Ansible playbook'unu çalıştırır.

Adım 4: Sunucu İnventory'sinin Oluşturulması

inventory.ini dosyasını oluşturun:

[servers]
webserver ansible_host=your_server_ip        

Adım 5: Ansible ve GitLab CI/CD'nin Yapılandırılması

Ansible'ın yüklü olduğundan ve CI/CD pipeline'ınızın GitLab'da etkinleştirildiğinden emin olun.

Adım 6: Değişikliklerinizi Commit ve Push Edin

Projeye yapılan her değişiklik, GitLab CI/CD pipeline'ını tetikler ve Ansible playbook'u çalıştırılarak uygulamanın sunucuya dağıtılmasını sağlar.

Yorumları görmek veya yorum eklemek için oturum açın

Diğer görüntülenenler