top of page
  • Yazarın fotoğrafıEmirhan Güler

AWX Tower'ı microK8s ile Kurulumu Ubuntu 22.04


Ansible Nedir?

Ansible, açık kaynaklı bir otomasyon aracıdır. Sistem yöneticileri ve geliştiriciler, Ansible'ı kullanarak sunucuları yapılandırabilir, uygulamaları dağıtabilir ve çeşitli operasyonel görevleri otomatikleştirebilirler. Ansible, playbook adı verilen YAML dosyaları kullanarak yapılandırma yönetimi yapar.


AWX Nedir?

AWX, Ansible otomasyonunu kolaylaştırmak için kullanılan bir web tabanlı kullanıcı arayüzü ve REST API'dir. AWX, Ansible Tower'ın açık kaynaklı bir sürümüdür ve Ansible playbook'larınızı merkezi bir noktadan yönetmenizi, izleyip raporlamanızı sağlar. Özellikle büyük ölçekli sistemlerde otomasyonu yönetmek için kullanılır.


AWX'in Temel Özellikleri


Web Tabanlı Arayüz: AWX, Ansible playbook’larınızı, görevlerinizi ve envanterinizi web tabanlı bir kullanıcı arayüzü üzerinden yönetmenize olanak tanır. Bu, teknik olmayan kullanıcıların veya ekiplerin otomasyonu daha kolay yönetilmesini sağlar.

REST API: AWX, otomasyon işlemlerini programatik olarak yönetmek için REST API sağlar. Bu API, diğer yazılımlarla entegrasyon ve otomasyon işlemlerini otomatikleştirmek için kullanılır.

Görev Planlama ve İzleme: AWX, otomasyon görevlerini zamanlayabilir ve bu görevlerin durumunu izleyebilir. Görevler tamamlandığında, başarı veya hata durumlarını görüntüleyebilir ve bu verileri raporlayabilirsiniz.

Kullanıcı Yönetimi: AWX, farklı kullanıcı rolleri ve izinleri yönetebilir. Bu, farklı ekip üyelerinin veya kullanıcıların sadece yetkili oldukları verilere ve işlevlere erişmesini sağlar.


Kubernetes Nedir?

Kubernetes (K8s), konteyner uygulamalarını dağıtmak, ölçeklendirmek ve yönetmek için açık kaynaklı bir platformdur. Konteynerler, uygulama bileşenlerini paketler ve bu bileşenlerin taşınabilirliğini ve yönetimini kolaylaştırır. Kubernetes, bu konteynerleri kümeler (clusters) halinde yönetir.


MicroK8s Nedir? 

MicroK8s, Canonical tarafından geliştirilen hafif bir Kubernetes dağıtımıdır. Özellikle geliştiriciler ve test ortamları için uygundur. MicroK8s, düşük kaynak tüketimi ile tam bir Kubernetes deneyimi sağlar ve tek bir düğüm üzerinde çalışabilir, bu da onu lokal geliştirme ve test işlemleri için ideal kılar.


AWX ve MicroK8s’in Birlikte Çalışması

AWX, MicroK8s üzerinde Kubernetes kaynakları olarak yapılandırılır. MicroK8s, bu Kubernetes kaynaklarını yönetir ve AWX’in web arayüzü, veri tabanı ve diğer bileşenleri Kubernetes ortamında çalıştırılır. Bu yapı, AWX’in ölçeklenmesini, güncellenmesini ve yönetilmesini kolaylaştırır.


MicroK8s Kurulumu

MicroK8s'i kurup etkinleştirin

sudo snap install microk8s --classic

MicroK8s'in çalıştığından emin olun ve gerekli ek bileşenleri etkinleştirin

sudo microk8s status --wait-readysudo microk8s enable dns storage ingress

Kustomize ve kubectl Kurulumu

Kurmak için snap paket yöneticisini kullanın:

sudo snap install kustomize​sudo snap install kubectl --classic

Git Kurulumu

Git, sürüm kontrolü için kullanılan bir araçtır. Git'i kurmak için:

sudo apt update​sudo apt install git

Git Kurulumunu Kontrol Etme:

git --version

AWX Operator Kurulumu

AWX Operator'ı kurmak için gerekli kaynak dosyalarını awx-operator dizinine indirin:

git clone https://github.com/ansible/awx-operator.git​cd awx-operator

Kustomize Konfigürasyon Dosyası (kustomization.yaml) Oluşturun

nano kustomization.yaml

içine aşağıdaki yaml kodunu yazın(boşlukların hizalarına dikkat edin):

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
generatorOptions:
  disableNameSuffixHash: true
secretGenerator:
  - name: awx-admin-password
    type: Opaque
    literals:
    - password=awx-admin-password
resources:
  - github.com/ansible/awx-operator/config/default?ref=2.12.2
  - awx-deploy.yaml
  - awxmeshingress-demo.yml
images:
  - name: quay.io/ansible/awx-operator
    newTag: 2.12.2
namespace: awx​

AWX Kaynak Dosyasını (awx-deploy.yaml) Oluşturun

nano awx-deploy.yaml

apiVersion: awx.ansible.com/v1beta1kind: AWX
​metadata:
 name: awx
​spec:
 admin_user:
 admin​ admin_password_secret: awx-admin-password
​ service_type: ClusterIP​
 ingress_type: ingress
​ hostname: medium.example.com ingress_tls_secret: medium
​ postgres_configuration_secret: awx-postgres-configuration

awx-deploy.yaml ve awx-demo.yml dosyalarının ikisi de aynı isim ve türdeki AWX kaynağını tanımladıkları için kustomize tarafından bir çakışma oluşur. Bu çakışmayı çözmek için awx-demo.yml dosyasını silinmesi gerekir, çünkü her iki dosya da benzer işlevselliğe sahiptir ve awx-deploy.yaml dosyası tüm gerekli özellikleri içerir. Bu işlem, yapılandırma dosyalarındaki karmaşıklığı azaltır ve çakışmayı ortadan kaldırarak başarılı bir kurulum sağlar.


MicroK8s'i Başlatma ve Yönetim Gruplarına Ekleme

sudo usermod -a -G microk8s $USERsudo chown -f -R $USER ~/.kube

Ardından, oturumu kapatıp tekrar açın veya terminali kapatıp açın.


MicroK8s CLI Araçlarını Etkinleştirme

sudo microk8s enable dns storage

MicroK8s İle Kubectl Kullanımı

MicroK8s'in kubectl komutunu kullanabilmeniz için kubeconfig dosyasını ayarlayın:

sudo microk8s kubectl config view --raw > $HOME/.kube/config​export KUBECONFIG=$HOME/.kube/config

Kustomize Kullanarak AWX'i Uygulama

Bu komudu kustomize dosyasının olduğu dizinde çalıştırın yani awx-operator dizininde.

kustomize build . | kubectl apply -f -

AWX Pod'larının Durumunu Kontrol Etme

Öncelikle, AWX Pod'larının durumunu kontrol edin. Tüm Pod'ların Running durumda olması gerekiyor. Eğer pod kısmında awx-operator-controller-manager pod'u Pending durumda ise nedeni node üzerinde disk basıncı (disk pressure) olduğundandır. Pod planlaması için yeterli kaynak mevcut değil çünkü node üzerinde yeterli disk alanı bulunmuyor. Bu, pod'un başlatılmamasına neden olabilir.

kubectl get pods -n awx

AWX Servisinin Durumunu Kontrol Etme

AWX'in dışarıya açıldığı servisin IP adresini kontrol edin. Eğer LoadBalancer tipi bir servis oluşturduysanız, bu adrese tarayıcı üzerinden erişebilirsiniz.

kubectl get svc -n awx

Tüm Pod'lar başarıyla çalışır görünüyorsa ve AWX servisiniz de oluşturulmuş durumdaysa. Şimdi, AWX web arayüzüne erişebiliriz.


AWX Web Arayüzüne Erişim

Eğer AWX servisi bir LoadBalancer veya NodePort tipi ile dışa açılmadıysa, kubectl port-forward komutunu kullanarak yerel makinenizden erişebilirsiniz:

kubectl port-forward svc/awx-service 8080:80 -n awx

Bu komut, yerel makinenizin 8080 portunu AWX servisinin 80 portuna yönlendirecek. Ardından, tarayıcınızda http://localhost:8080 adresine giderek AWX arayüzüne erişebilirsiniz.

  - Kullanıcı adı: admin

  - Şifre: kustomization.yaml dosyanızda belirtilen awx-admin-password adlı secret'tan alınacaktır.


10 görüntüleme0 yorum

Son Yazılar

Hepsini Gör

Comments


bottom of page