14 Ocak 2023 Cumartesi

DevOps Yolunda Önce Docker mı yoksa Kubernetes mi Öğrenmeliyiz?

Docker, uygulamaların çalışmasını sağlamak için kullanılan bir container teknolojisidir. Kubernetes ise, container'ların yönetimi, dağıtımı ve skalasını sağlamak için kullanılan bir araçtır. Öncelikle Docker öğrenmeniz önerilir, çünkü Kubernetes container'ları yönetirken Docker kullanır. Ancak, uygulamalarınızı dağıtmak ve skalalamak istiyorsanız, Kubernetes öğrenmeniz daha yararlı olabilir.

4 Ocak 2023 Çarşamba

Ansible Varsayılan Yapılandırma ve Görevleri Farklı Playbooklara Dağıtma

 Ansible eğitiminde fena gitmiyoruz. En son yapıyı yeniden kurgulamaya ve her bir görevi farklı playbooklara dağıtmaya çalışıyoruz. Aşağıdaki resimde de görüldüğü gibi bir dizin kurgusuna gittik. Bu sanırım Ansible Docs'un istediği veya önerdiği bir yapı. Her bir görevin altında dikkat ederseniz bir main.yml dosyası var. Ayrıca tree isimli yeni bir komut öğrendim. Linux'ta dizin alt yapısını öğrenmek için bu komutu kullanabiliyorsunuz ancak yüklü olması gerekiyor. Yüklemesi birkaç saniyelik bir işlem. Denemenizi öneririm.

Ansible Dosya Yapısı


27 Aralık 2022 Salı

Ansible'da Değişkenler ve Inventory Dosyasında Sunucuları Gruplandırma

 Ansible'ın yeteneklerini gördükçe heyecanlanıyorum ve gerçekten ufkum genişliyor diyebilirim. Birçok şey yapmaya başladık. Bugün varsayılan yml dosyası oluşturup inventory dosyamızda sunuclarımızı gruplandırdık ve görevleri yine worker'lar üzerindeki sunucu tiplerine göre çalıştırmayı başardık. Yeni yml dosyamızda artık görev görev yapılacak işlemleri ekleyip sonucunun gerçekleşmesini bekliyoruz. Yml dosyasının son hali:

inventory:

[web_sunuculari]
192.168.1.64 

[veritabani_sunuculari]
192.168.1.65 

apache_varsayilan.yml:

apache_sunucusu: apache2
php_kutuphane: libapache2-mod-php

***

---
  - hosts: all
    become: true
    tasks:

    - name: Bu gorev, sunucu güncellemeleri için hazırlanmıştır.
      ansible.builtin.package:
        upgrade: dist
        update_cache: yes
      when: ansible_distribution == "Ubuntu"
    # worker'ların arasında Rocky olsaydı update_only: yes ve
    distirbution kısmı "Rocky" olarak ayrıca eklenecekti.
       

    # Bu görev Ubuntu için Apache ve Php kütüphanesini yükler.
  - hosts: web_sunuculari
    become: true
    tasks:

      - name: İşletim sistemlerini tespit et.
        debug: var=ansible_os_family

      - name: Dosyalardan değişkenleri oku
        include_vars: "{{ lookup('first_found', params) }}"
        vars:
          params:
            files:
            - "vars/apache_{{ ansible_os_family }}"
            - "vars/apache_varsayilan.yml"

      - name: Bu gorev, Ubuntu için apache ve php kütüphanesi ile
                birlikte paket index'ini gunceller.
        ansible.builtin.package:
            name:
              - "{{ apache_sunucusu }}"
              - "{{ php_kutuphane }}"
            state: latest

26 Aralık 2022 Pazartesi

gather_facts komutu

 Ansible otomasyonu eğitimi çok güzel gidiyor. Playbook'ları özelleştirmeye ve farklı yöntemler kullanmaya başladık. Örneğin değişkenleri kullanarak playbook'ları özelleştirdik. Listede yer alan farklı türdeki linux dağıtımları için parametrelerden yararlanarak görevi detaylandırabiliyorsunuz. Ansible ile ilgili yaptığımız çalışma hakkında daha sonra detaylı bilgi tekrar paylaşmaya çalışacağım. Bir de şöyle bir komut kullandık bu hoşuma gittiği için özellikle blog yazmak istedim. Bir worker hakkında dözet bilgi çekip detayına bakmanıza yardımcı oluyor, hangi Linux dağıtımı vs. gibi.

$ ansible all -m gather_facts --limit 192.168.1.64 | grep ansible_distribution

Ve dönen yanıt:

Ansible


24 Aralık 2022 Cumartesi

Ansible Playbook ile Apache Kurulumu Yaptım

 Playbook oluşturmak ve içerisine eklediğimiz görevleri tek bir komutla tüm sunuculara uygulamak gerçekten büyük bir kolaylık. Ufkum genişledi diyebilirim. Eğitim sürecinde şöyle bir şey yaptık, ansible-otomasyonu klasörümüzde bir yml dosyası oluşturduk ve içerisine yapmak istediğimiz görevleri ekleyip kaydettik. Komutlar sırasıyla apt index'ini güncelliyor, ardından apache ve php kurulumunu da yaparak görevi tamamlıyor.

apache_yukleme.yml dosyasının içeriği:

---
  - hosts: all
    become: true
    tasks:

    - name: Bu gorev, apt paket index'ini gunceller.
      apt:
        update_cache: yes

    - name: Bu gorev, apache2 yuklemesini gerceklestirir.
      apt:
       name: apache2
       state: latest

    - name: Bu gorev, apache icin php kutuphanesini yukler.
      apt:
       name: libapache2-mod-php
       state: latest


Playbook'u çalıştırdığımız komut:

ansible-playbook --ask-become-pass apache_yukleme.yml

Visual Studio Terminal ile Githup Commit

git config --global user.name "name"
git config --user.email "e-mail"