Ansible Kullanım ve Playbook Örnekleri

Ansible Kullanım ve Playbook Örnekleri 1
Ansible Kullanım ve Playbook Örnekleri 3

Ansible, otomasyon ve yapılandırma yönetimi için kullanılan açık kaynaklı bir yazılımdır. Ansible, kurulum, yapılandırma ve dağıtım işlemlerini kolaylaştırmak için tasarlanmıştır. Bu makalede, ansible kullanım örnekleri ele alınacak.

Ansible, betik veya programlama diline ihtiyaç duymadan sunucu yapılandırmasını otomatikleştirmek için kullanılabilir. Ansible, birçok platformda çalışabilen çoklu bağlantı noktalarına sahip istemci/sunucu mimarisine sahiptir. Bu makalede, ansible kullanarak yapılandırma dosyalarının nasıl oluşturulacağı ve uygulanacağı ele alınacaktır.

Adım 1: Ansible Kurulumu

Ansible‘ın en son sürümünü resmi web sitesinden indirebilirsiniz.

Ansible İndir : https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html

Ubuntu’da, Ansible’ı şu komutla yükleyebilirsiniz:

sudo apt-get install ansible

Adım 2: Host Ekleme

Hostlar, ansible ile yönetilen hedeflerdir. Ansible’ın yöneteceği tüm hostları /etc/ansible/hosts dosyasında tanımlamanız gerekir. Host ekleme işlemi şu şekilde yapılabilir:

[webservers]
webserver1.example.com
webserver2.example.com

[databases]

dbserver1.example.com dbserver2.example.com

Bu dosya, webservers ve databases adında iki grup içeren dört farklı sunucu tanımlar.

Adım 3: Yapılandırma Dosyası Oluşturma

Ansible, yapılandırma dosyaları olarak adlandırılan YAML dosyalarını kullanır. Bu dosyalar, hedef hostlarda ayarlanacak yapılandırmaları belirtir. Bir yapılandırma dosyası örneği aşağıdaki gibidir:

- hosts: webservers
  tasks:
    - name: Install Nginx
      sudo: yes
      apt: pkg=nginx state=installed update_cache=yes

Bu YAML dosyası, “webservers” grubundaki tüm hostlara Nginx’in yüklenmesini sağlar.

Adım 4: Yapılandırma Dosyasını Uygulama

Yapılandırma dosyasını uygulamak için, ansible-playbook komutunu kullanmalısınız. Aşağıdaki komut, “webserver1.example.com” sunucusuna Nginx kurulumunu yapacaktır:

ansible-playbook nginx.yml --limit=webserver1.example.com

Adım 5: Rol Oluşturma

Ansible’da, ortak görevleri bir rol halinde gruplayabilirsiniz. Bir rol, bir yapılandırma dosyası koleksiyonudur ve genellikle belirli bir amaca hizmet eder. Her rol, vars/main.yml, handlers/main.yml ve tasks/main.yml gibi üç standart dosya içerir. Rol örneği aşağıdaki gibidir:

roles/
    common/
        tasks/
            main.yml
        handlers/
            main.yml
        vars/
            main.yml
        files/
            httpd.conf

Bu yapılandırma, “common” rolünü tanımlar. Bu rol, sunucular arasındaki ortak yapılandırmaları belirtir.

Adım 6: Role Uygulama

Rolü uygulamak için, yapılandırma dosyasında rolü belirtmeniz yeterlidir. Aşağıdaki örnekte “common” rolü kullanılıyor:

- hosts: webservers
  roles:
    - common

Adım 7: Modüller

Ansible, bazı yaygın görevleri yerine getirmek için modüller içerir. Bu modüller, örneğin paket yönetimi, dosya kopyalama, kullanıcı yönetimi vb. görevleri yerine getirebilir. Ansible’ın resmi web sitesinde birçok modülün listesi mevcuttur.

Ansible Playbook Örnekleri: Adım Adım Yönergeler

Ansible, yazılım otomasyonu için kullanılan popüler bir açık kaynaklı araçtır. Ansible Playbook’lar, yinelenen işlemleri otomatikleştirmek için kullanılabilir. Bu makalede, Ansible playbook örnekleri hakkında ayrıntılı bilgi edineceksiniz. Ayrıca, bu örnekleri takip ederek kendi playbook’larınızı oluşturabilirsiniz.

2. Ansible Playbook Temel Yapısı

Ansible Playbook‘ların temel yapısı, YAML dosyası biçimindedir. Her playbook, en azından bir adet task (görev) içermelidir. Aşağıda, bir playbook’un temel yapısını görebilirsiniz:

---
- name: Playbook Adı
  hosts: hostname
  become: yes
  vars:
    variable_name: value
  tasks:
    - name: Görev Adı
      command: Komut

3. Ansible Playbook Örnekleri

3.1 Dosya Kopyalama

Bu playbook örneği, belirtilen dosyayı remote sunucuya kopyalar.

---
- name: Dosya Kopyalama
  hosts: webserver
  become: yes
  tasks:
    - name: Dosya Kopyala
      copy:
        src: /path/to/local/file
        dest: /path/to/remote/directory/

3.2 Servis Durumu

Bu playbook örneği, belirtilen servisin durumunu kontrol eder.

---
- name: Servis Durumu
  hosts: webserver
  become: yes
  tasks:
    - name: Servis Kontrol Et
      systemd:
        name: service_name
        state: status

3.3 Paket Yükleme

Bu playbook örneği, belirtilen paketi remote sunucuya kurar.

---
- name: Paket Yükleme
  hosts: webserver
  become: yes
  tasks:
    - name: Paket Kur
      apt:
        name: package_name
        state: present

3.4 Şablon Oluşturma

Bu playbook örneği, belirtilen şablona dayalı olarak bir dosya oluşturur.

---
- name: Şablon Oluşturma
  hosts: webserver
  become: yes
  tasks:
    - name: Şablon Oluştur
      template:
        src: /path/to/template/file.j2
        dest: /path/to/remote/directory/file.txt

4. Ansible Playbook Uygulama

Yukarıdaki örneklerden herhangi birini kendi ihtiyaçlarınıza göre uyarlayarak kendi playbook’larınızı oluşturabilirsiniz. Ayrıca, birden fazla görevi içeren playbook’lar da oluşturabilirsiniz.

Ansible Playbook Detayına İnelim:

2. Ansible Playbook Nedir?

Ansible Playbook, Ansible için yazılmış otomatikleştirilmiş işlemlerin listesidir. YAML biçiminde yazılırlar ve belirli bir amaç için tasarlanırlar. Bir playbook, birden fazla görevi içerebilir ve her görev, belirli bir sunucuda gerçekleştirilir. Playbook’lar, birden fazla sunucuyu da yönetebilir.

3. Ansible Playbook Örnekleri

3.1 Apache Kurulumu

Bu playbook örneği, Apache web sunucusunu yükler ve yapılandırır.

---
- name: Apache Kurulumu
  hosts: webservers
  become: yes
  tasks:
    - name: Apache Paketini Yükle
      apt:
        name: apache2
        state: present

3.2 PostgreSQL Kurulumu

Bu playbook örneği, PostgreSQL veritabanı sunucusunu kurar ve yapılandırır.

---
- name: PostgreSQL Kurulumu
  hosts: databaseservers
  become: yes
  tasks:
    - name: PostgreSQL Paketini Yükle
      apt:
        name: postgresql
        state: present

3.3 Firewall Ayarları

Bu playbook örneği, sunucu güvenliğini artırmak için bir güvenlik duvarı kurar ve yapılandırır.

---
- name: Güvenlik Duvarı Kurulumu
  hosts: all
  become: yes
  tasks:
    - name: Ufw Paketini Yükle
      apt:
        name: ufw
        state: present
    - name: Güvenlik Duvarını Aç
      ufw:
        rule: allow
        port: 80
    - name: Güvenlik Duvarını Kaydet
      ufw:
        state: enabled

3.4 SSH Anahtarları Yönetimi

Bu playbook örneği, sunuculardaki SSH anahtarlarının yönetimini yapar.

---
- name: SSH Anahtarları Yönetimi
  hosts: all
  become: yes
  tasks:
    - name: SSH Anahtarını Ekle
      authorized_key:
        user: username
        key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7oFwYhUjJElH8IvR6Az5NyQ... "

3.5 Servis Kontrolü

Bu playbook örneği, belirtilen servisin durumunu ve konfigürasyon dosyalarını kontrol eder.

---
- name: Servis Kontrolü
  hosts: webservers
  become: yes
  tasks:
    - name: Apache Durumunu Kontrol Et
      systemd:
        name: apache2
        state: status
    - name: Apache Konfigürasyon Dosyasını Kontrol Et
      stat:
        path: /etc/apache2/httpd.conf

3.6 NGINX Kurulumu

Bu playbook örneği, NGINX web sunucusunu yükler ve yapılandırır.

---
- name: NGINX Kurulumu
  hosts: webservers
  become: yes
  tasks:
    - name: NGINX Paketini Yükle
      apt:
        name: nginx
        state: present

3.7 Yedekleme

Bu playbook örneği, sunucularda bulunan dosyaların yedeklenmesini yapar ve belirli bir konuma kaydeder.

---
- name: Yedekleme
  hosts: all
  become: yes
  vars:
    backup_dir: "/backup"
  tasks:
    - name: Yedekleme Klasörünü Oluştur
      file:
        path: "{{ backup_dir }}"
        state: directory
    - name: Dosya Yedekleme
      archive:
        path: "/var/log"
        dest: "{{ backup_dir }}/log.tar.gz"

Ansible Playbook’lar, yapılandırma yönetiminde büyük bir kolaylık sağlar. Bu makalede, Ansible Playbook kullanarak bazı temel görevleri nasıl otomatikleştirebileceğinizi öğrendiniz. Umarız bu örnekler, sizin de benzer projelerinizde işinize yarar.

ANSIBLE PLAYBOOK VE ORNEK KULLANIM SIKÇA SORULAN SORULAR

Ansible nedir ve ne işe yarar?

Ansible, açık kaynaklı bir otomasyon aracıdır ve sunucuların yapılandırması, yönetimi ve dağıtımı için kullanılır.

Ansible ile neler yapılabilir?

Ansible, sunucu yapılandırması, yazılım dağıtımı, sistem güncellemeleri ve kullanıcı hesapları gibi birçok görevi otomatikleştirebilir.

Ansible Playbook nedir?

Ansible Playbook, bir YAML dosyasıdır ve sunucuların yönetimini otomatikleştirmek için kullanılır. Playbook, sunucuların durumunu tanımlayan adımların bir listesidir.

Ansible ile başka hangi araçlar entegre edilebilir?

Ansible, Puppet, Chef ve SaltStack gibi diğer yapılandırma yönetimi araçlarıyla entegre edilebilir. Ayrıca, AWS, Google Cloud Platform ve Microsoft Azure gibi bulut hizmetleriyle de entegre olabilir.

Yorum yapın