Open Source

AWX Ansible Temel Konfigürasyon Bölüm-1

Merhaba, İlk makalemizde AWX Ansible kurumunu incelemiştik.

AWX Ansible Kurulumu

Bu makalemizde ise AWX Ansible’in temel konfigürasyonunu inceleyeceğiz. Otomasyon sistemlerine baktığımızda ( SCCM, ManageEngine Desktop Central ) ana tasarım çok önemlidir, Collectionların oluşturlması, kuralların yazılması, credentials oluşturulması gibi süreçler bir birini takip eder. AWX Ansible’da da bu süreçleri en başta yapmamız gerekmektedir. Gömleğin ilk düğmesini doğru iliklemek bu sistemlerde çok önemlidir. Aşağıdak görsel genel tasarım için size bir fikir verebilir.

Bizde ilk olarak aşağıdaki adımlar ile başlıyacağız.

  • Organizasyonun oluşturulması
  • Takımların oluşturulması
  • Credentials’ların oluşturulması
  • Evanterin oluşturulması
  • Hostların eklenmesi
  • Projenin oluşturulması
  • Playbook ( Komut dosyaları ) oluşturulması
  • Job Template’lerinin oluşturulması

İlk makalede AWX Ansbile’ı K3s üzerine kurmuştuk ki tavsiye edilen yöntem zaten bu. Kubernetes sistemleri shell üzerinden yönetmek bazen zor olabilir. Bu yüzden GUI olan kubernetes yöneticileri var. Bende bu yöntem ile devam edeceğimden AWX’i kuruduğum sistem üzerinde Portainer kuracağım.

Portainer; Docker veya Docker Swarm Cluster’ımızı yönetmemizi sağlayan bir management UI’dır. Biz de Portainer ile kurduğumuz K3s alt yapımızı görsel olarak yöneteceğiz.

İlk olarak Portainer’i kuracağız. Bunun için Linux shell’i üzerindeyken aşağıdaki komutu çalıştırıyoruz.

kubectl apply -n portainer -f https://raw.githubusercontent.com/portainer/k8s/master/deploy/manifests/portainer/portainer.yaml

Bu işlemin ardından Portainer hazır hale geliyor. Aşağıdaki adres ile erişim yapıyoruz ve şifre tanımlarını tamamlayarak giriş yapıyoruz.

https://sunucu ip adresi:30779

Aşağıda görüldüğü gibi K3s kubernetes clustarımızı görüyorüz.

Aşağıdak görüşdüğü gibi “awx-task” pod’umuza console yapabilir hale geldik. Şu an için bunu burada bırakarak AWX’e geri dönüyoruz.

İlk olarak Organizasyon oluşturuyoruz. Ben isimini “ÇözümPark” verdim.

Şimdi yeni bir Team oluşturuyorum ( ismini Update Management verdim) ve organizasyon olarak “ÇözümParkı” seçiyorum.

Sırada envanter oluşturmaya geldi. Ben ilk olarak Linux sistemleri yönetmek istiyorum. Bu yüzden Name olarak “Linux Servers” ismini verdim ve yine organizasyon olarak “ÇözümPark”‘ı seçtim.

Bu işemin ardından yeni bir “Credentials” oluşturuyorum. Buraya Linux sistemlere erişmek için kullanıcı ve şifre bilgilerini giriyorum. Burada şifre yerine AWX sunucusunda yeni bir ssh key oluşturup daha sonra yöneteceğiniz sunucuya bu keyi kopyalayıp sonrasında da burada “SSH Private Key“‘i de buraya girebilirsiniz.

Şimdi yeni Project oluşturacağız. Bunun için AWX pod’umza shell üzerinden bağlanıp bir kaç işlem yapmamız gerekiyor.

awx-task” pod’a konsol yapıyorum ve “var/lib/awx/project” atlına “playbooks” adında yeni bir klasör açıyorum.

Sonrasında “playbooks” altına “ping.yaml” adında bir dosya açıyorum. Sadece AWX özelinde değil, ansible’da komut dosyaları “.yaml” uzantılı dosyalardan oluşur. Şu an için AWX’de test turları attığımız için ilk olarak yöneteceğim Linux sistemine “ping” atacağım. Bu yüzden “ping.yaml” dosyası içerisine aşağıdaki komutları yazıyorum.

---
- hosts: all
  gather_facts: false
  tasks:
    - ping:

Bu dosyayı “ping.yaml” olarak kaydediyorum.

Şimdi yeni Project oluşturuyorum. İsim olarak “Linux Management” veriyorum, organizasyon olarak “ÇözümParkı” seçiyorum. “Playbook Dictionary” kısmında oluşturduğumuz “playbooks” klasörünü seçiyorum.

Şimdi Template oluşturacağız. Template’leri oluşturduğumuz “.yaml” uzantılı komut dosyalarını kullanmak için kullanıyoruz.

İlk olarak isim veriyorum ve aşağıdak gibi gerekli alanları seçiyorum. “Playbook” kısmında “ping.yml“‘i seçiyoruz.

Evet artık her şey hazır, “Launch“‘a tıklayarak çalıştırıyoruz.

Aşağıda görüldüğü gibi başarılı bir şekilde Linux suncuma bağlandım ve sistemi ping’ledim.

İkinci denememizde ise disk kullanım bilgisini çekmeye çalışacağız. Bunun için yine Pontainer üzerinden konsola bağlanıyorum ve “var/lib/awx/project/playbooks” altına “disk-info.yaml” dosya oluşturup içeriğini aşağıdaki gibi yapıyorum.

---
- name: disk bilgisi
  hosts: all
  tasks:
          - name: disk kullanım durumu
            command: df -h
            register: space
          - debug:
                  var: space.stdout_lines

Sonrasında bunun içinde bir Template oluşturup çalıştırıyorum. Aşağıdaki gibi disk kullanım bilgimiz geldi.

Şuan AWX Ansible ile deneme turları atıyoruz. İlerleyen makalelerde daha dersin senaryolar üzerinde duracağız. Bir sonraki makalede Windows sistemlerine erişimleri inceleyeceğiz. Faydalı olması dileği ile keyfili okumalar.

İlgili Makaleler

4 Yorum

  1. Hocam ellerinize sağlık çok güzel bir çalışma olmuş.
    portainer adresinde port numarasında bir 7 basmamış galiba bilginize.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu