Lewati ke konten

Deploy AWX di k3s Single Node untuk Automation Ansible

Ada satu fase di hidup seorang infra / DevOps engineer di mana Ansible CLI aja mulai terasa kurang.
Playbook makin banyak, inventory makin kompleks, credential makin sensitif, dan akhirnya muncul kebutuhan:

“Gua butuh UI, RBAC, logging, tapi gak mau ribet setup Kubernetes gede.”

Di titik itu, AWX jadi pilihan yang masuk akal.
Dan biar gak overkill, gua pilih k3s sebagai pondasinya.

Tulisan ini bukan best-practice enterprise, tapi catatan jujur dari setup lab yang:

  • Ringan
  • Cepat
  • Cukup rapi
  • dan realistis buat dipakai harian

Secara resmi, jawabannya adalah:

  • Ansible Tower (sudah deprecated)
  • Red Hat Ansible Automation Platform (AAP)

Masalahnya?

  • AAP berbayar
  • Pricing sering kali overkill untuk lab, internal tools, atau tim kecil
  • Support enterprise belum tentu jadi kebutuhan utama

Di titik ini, AWX muncul sebagai opsi yang masuk akal:

  • Open-source
  • Upstream dari Ansible Tower
  • Fitur inti (UI, RBAC, scheduling, logging) tetap ada
  • Bisa jalan di Kubernetes ringan seperti k3s

Kalau kalian butuh SLA, support resmi, dan compliance ketat — AAP tetap pilihan yang benar.
Tapi kalau yang dicari adalah fungsi dan fleksibilitas, AWX sudah lebih dari cukup.

Target gua sederhana:

  • Kubernetes single-node
  • Setup cepat
  • Proof-of-concept
  • Gak perlu ribet ingress
  • AWX bisa langsung diakses
  • Cocok buat homelab & internal automation
  • Tim kecil yang butuh kontrol tapi gak butuh kontrak enterprise

Bukan HA, bukan production-grade, tapi usable.

  • Ubuntu Server 22.04
  • 1 VM / bare metal
  • Resource minimum:
    • 2 vCPU
    • 4 GB RAM (8 GB lebih nyaman)
  • Internet access

Step 1 — Nyiapin Package yang Diperlukan

Section titled “Step 1 — Nyiapin Package yang Diperlukan”
Terminal window
sudo apt update
sudo apt install -y git build-essential curl
Terminal window
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--write-kubeconfig-mode=644" sh -

Cek node:

Terminal window
kubectl get nodes -o wide
Terminal window
kubectl get all -n kube-system
Terminal window
git clone https://github.com/ansible/awx-operator.git
cd awx-operator
git checkout tags/2.19.1
export VERSION=2.19.1
make deploy
Terminal window
kubectl create secret generic awx-admin-password \
--from-literal=password='<STRONG_PASSWORD>' \
-n awx
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx-production
namespace: awx
spec:
admin_user: admin
admin_password_secret: awx-admin-password
service_type: nodeport
Terminal window
kubectl apply -f awx-prod.yml
kubectl get pods -n awx -w
Terminal window
kubectl get svc -n awx

Akses via:

http://<NODE_IP>:<NODEPORT>

AWX + k3s itu kombinasi yang underrated. Bukan buat semua orang, tapi pas banget buat engineer yang:

  • Pragmatis
  • Suka setup rapi
  • dan pengen automation yang beneran kepake

Kalau kalian lagi di fase “gua butuh UI tapi gak mau ribet”, setup ini layak dicoba.

Happy automating ☕