AWX Kurulumu (ver:19.5.1)
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/