Open Source

AWX Ansible Kurulumu

Merhaba, bu makalemizde sizelere açık kaynak kodlu otomasyon sistemi AWX’den bahsetmek istiyorum. Günümüzde otomasyon sistemleri IT Dünya’sı çok önemli bir yere sahip. Özellikle patch management söz konusu olduğunda vazgeçilmezler arasında. Büyük organizasyonlarda onlarda cleintları yönetmek hiç kolay değildir ve uzaktan patch management, uzaktan uygulama dağıtımı, uzaktan işletim sistemi dağıtımı en temel ihtaçların başında gelir. Tabi hali hazırdan bu işleri yapan ücretli yazılımlar mevcut. Bunardan en bilinenleri Microsoft MECM ( SCCM ) ve ManageEngine Desktop Central.

Aslında benim saf ansbile dediğim ve AWX’in temelini oluşturan uygulama, tamamen shell ile yöntilen bir versiyon. AWX ise Red Hat firmasının desteklediği ve ücret karşılığı sattığı Ansible Tower’ın community versiyonudur. Yeni AWX Ansabile ile Ansible Tower arasındaki temel fark, Ansible Tower Red Hat tarafından ücret karşılığı support edilen AWX Ansbile ise yine Red Hat tarafından desteklenen ancak sadece community olan versiyonudur.

Ansible’ı diğer ürünlerden ayırlan en büyük özelliği, hemen hemen vendor bağımzsız tüm platformları desteklemesi ve agentless olmasınıdır. Yani ansible bir sisteme bağlanması için bir agenta ihtiyaç duymaz. Örnek olarak windows tabanlı bir sisteme WinRM’den erişebilir, linux bir sisteme ssh bir switch’e telnet ya da ssh hatta bir jeneratöre yine hangi bağlantıyı destekliyorsa erişir istediğiniz işlemleri yapar. Gördüğünüz gibi ansible vendor ve agent bağımsız harika bir otomasyon ve yönetim sistemidir.

Konumuza gelecek olursak, Ubuntu 20.04 üzerinde AWX’i kurmak istiyoruz. AWX, 17 versiyonuna kadar docker üzerine kurulabiliyordu. 17’den sonraki versiyonlar için kubernetes üzerine kurulum tavsiye ediliyor. Bizde AWX’i kubernetes üzerine kurucağız. İsterseniz hızlıca başlayalım.

Yapı

İşletim sistemim Ubuntu 20.04 LTS, tüm updateleri yapılmış durumda ve üzerindeki firewall kapalı.

Sistem gereksinimleri

  • Min CPU: 4 Çekirdek
  • Min RAM : 8 GB
  • Min Disk Alanı: 25 GB

Not: Eğer minimum gereksinimleri karşılamazsanız pod’lar ayağa kalkmıyor ve kuruluma devam edemiyorsunuz.

İlk olarak K3s kuracağım. Bildiğiniz gibi K3s (Lightweight Kubernetes), K8s’in daha lite bir versiyonu.

curl -sfL https://get.k3s.io | sudo bash -
sudo chmod 644 /etc/rancher/k3s/k3s.yaml

Aşağıda görüldüğü gibi node ayağa kalktı.

kubectl get nodes
sudo apt install git build-essential

Git’ten son AWX versyionunu çekiyoruz.

git clone https://github.com/ansible/awx-operator.git
export NAMESPACE=awx
kubectl create ns ${NAMESPACE}
kubectl config set-context --current --namespace=$NAMESPACE 

Aşağıdaki komutları sırayla giriyoruz.

cd awx-operator/

sudo apt install curl jq

RELEASE_TAG=`curl -s https://api.github.com/repos/ansible/awx-operator/releases/latest | grep tag_name | cut -d '"' -f 4`

echo $RELEASE_TAG

git checkout $RELEASE_TAG
export NAMESPACE=awx
make deploy

Pod’umuz ayakta ve çalışıyor. Şu ana kadar k3s kurulumu tamamlandı. Clusterımız kuruldu ve podumuz hazır hale geldi. Şimdi AWX’i deploy edeceğiz.

kubectl get pods
cat <<EOF | kubectl create -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: static-data-pvc
  namespace: awx
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-path
  resources:
    requests:
      storage: 5Gi
EOF
nano awx-deploy.yml
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx
spec:
  service_type: nodeport
  projects_persistence: true
  projects_storage_access_mode: ReadWriteOnce
  web_extra_volume_mounts: |
    - name: static-data
      mountPath: /var/lib/projects
  extra_volumes: |
    - name: static-data
      persistentVolumeClaim:
        claimName: static-data-pvc
kubectl apply -f awx-deploy.yml

Aşağıda görüldüğü gibi her şey hazır.

watch kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator"

Kurulum tamamlandı ve bir login şifre üretiyoruz.

kubectl get secret awx-admin-password -o go-template='{{range $k,$v := .data}}{{printf "%s: " $k}}{{if not $v}}{{$v}}{{else}}{{$v | base64decode}}{{end}}{{"\n"}}{{end}}'

Aşağıdaki komut ile, bağlantı portunu öğreniyoruz. Bizde bu “30080“.

kubectl get svc -l "app.kubernetes.io/managed-by=awx-operator"

Artık “HTTP://sunucu ip adres:30080” adresi ile AWX login ekranına erişip login oluyoruz.

Görüldüğü gibi AWX hazır durumda. Bu makalede kurulumu yaptık, budan sonraki makalelerde windows,linux sistemlerin update konusu ile devam edeceğiz. Keyifli okumalar.

İlgili Makaleler

4 Yorum

  1. Eline sağlık. Ansible nin hala farkına varıldığını sanmıyorum IT sektöründe. Buralar değerlenecek zamanla diyelim 🙂

Bir yanıt yazın

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

Başa dön tuşu