AWX Kurulumu (ver:19.5.1)

Ibrahim Coskun
Turk Telekom Bulut Teknolojileri
3 min readApr 27, 2022

Single Node K3s üzerine Awx kurulumu:
Bu çalışmada Redhat 8 sunucu üzerinde kurulum gerçekleştirilecektir.

Gereksinimler:

Cpu: 4
Ram: 8GB
Disk: 50GB
OS: Redhat 8.5

Kurulum adımları:

K3s önerilerine göre firewall disable edilir.

$ systemctl disable firewalld -now

Awx ve Awx operator için gerekli paketler kurulur.

$ dnf install -y git make

K3s kurulumu yapılır.

$ curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644

Not: Local kullanıcılara readable olması için (/etc/rancher/k3s/k3s.yaml) 644 tanımlanır.

Awx Operator kurulumu:

Latest versiyon git üzerinden indirilir.

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

$ git checkout 0.16.1 => bu versiyon ile pinlendiğinde 19.5.1 versiyonu kurulur.

Not: Eğer güncel awx versiyonu kurulmak isteniyor ise aşağıdaki linkteki güncel versiyona göre pinlenir böylelikle güncel awx versiyonu kurulmuş olur.

https://github.com/ansible/awx-operator/tags

Varsayılan olarak Namespace tanımı awx tir.

$ export NAMESPACE=awx$ make deploy

Seçilen namespace’e awx operator deploy edilmiş olur.

$ kubectl -n awx get all

Gerekli dosyaların hazırlığı:

Awx için K3s github’tan indirilir.

$ cd ~$ git clone https://github.com/kurokobo/awx-on-k3s.git$ cd awx-on-k3s

Sertifika oluşturulması:

$ AWX_HOST=”awx.example.com” => varsayılan olarak bu şekilde kullanılır fakat isteğe göre isim değiştirilebilir.

Aşağıda key ve sertifika oluşturulduktan sonra şirket sertifikası (.crt ve .key) “/app/AWX/awx-on-k3s/base” içine atılarak “tls.crt” ve “tls.key” olarak rename edilir.

$ openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -out ./base/tls.crt -keyout ./base/tls.key -subj “/CN=${AWX_HOST}/O=${AWX_HOST}” -addext “subjectAltName = DNS:${AWX_HOST}”

Awx.yml dosyasının düzenlenmesi:

$ vi /AWX/awx-on-k3s/base/awx.yaml


spec:

ingress_type: ingress
ingress_tls_secret: awx-secret-tls
hostname: awx.example.com => varsayılan olarak bu şekilde gelir fakat isteğe göre isim değiştirilebilir.

Database login bilgilerinin düzenlenmesi:

$ vi /app/AWX/awx-on-k3s/base/kustomization.yaml

- name: awx-postgres-configuration
type: Opaque
literals:
— host=awx-postgres
— port=5432
— database=awx
— username=awx => varsayılan değerdir. DB için user belirlenebilir.
— password=Ansible123! => varsayılan değerdir. DB şifre belirlenebilir.
— type=managed

  • name: awx-admin-password
    type: Opaque
    literals:
    — password=Ansible123! => varsayılan değerdir. Awx gui login şifresi belirlenebilir.

Projeler ve Database için ayrı disk tanımı yapılabilir.

$ mkdir -p /data/postgres
$ mkdir -p /data/projects
$ chmod 755 /data/postgres
$ chown 1000:0 /data/projects

Awx Deploy adımı:

$ kubectl apply -k base

Yukarıdaki komut çalıştırıldığında arka tarafta logları takip etmek gerekirse aşağıdaki şekilde takip edilebilir:

$ kubectl -n awx logs -f deployments/awx-operator-controller-manager -c awx-manager

Deploy işlemi başarılı tamamlanırsa loglar aşağıdaki gibi bir çıktı sunar:

...----- Ansible Task Status Event StdOut (awx.ansible.com/v1beta1, Kind=AWX, awx/awx) -----PLAY RECAP *********************************************************************localhost                  : ok=65   changed=0    unreachable=0    failed=0    skipped=43   rescued=0    ignored=0

Pod ve servisler görülebilir.

$ kubectl -n awx get awx,all,ingress,secrets

Awx gui erişimi belirlenen adres ile erişim sağlanabilir. https://awx.example.com/

--

--