Create a Ubuntu Virtual Machine with:32 GB RAM8 cores120 GB HD
Stap-voor-stap: Installeer AWX 24.6.1 on Minikube (Ubuntu 24.04.2 LTS)
🔧 1. Voorzien van nieuwste software
1$ sudo apt update && sudo apt upgrade -y
2$ sudo apt install -y curl wget apt-transport-https ca-certificates gnupg lsb-release software-properties-common
3$ sudo timedatectl set-timezone Europe/Amsterdam
📦 2. Installeer Docker (Minikube backend)
1$ curl -fsSL https://get.docker.com | sudo bash
2$ sudo usermod -aG docker $USER
3$ newgrp docker # Activate group without reboot
4
5Enable en start Docker:
6$ sudo systemctl enable docker
7$ sudo systemctl start docker
8
9Test:
10$ docker run hello-world
🧱 3. Installeer Minikube
1$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
2$ sudo install minikube-linux-amd64 /usr/local/bin/minikube
3
4Test:
5$ minikube version
⚙️ 4. Installeer kubectl (Kubernetes CLI)
1$ curl -LO "https://dl.k8s.io/release/$(curl -Ls https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
2$ sudo install kubectl /usr/local/bin/kubectl
3
4Test:
5$ kubectl version --client
🚀 5. Start Minikube
1$ minikube start --cpus=4 --memory=8192 --driver=docker
2
3Optioneel: Stel in als standaard
4$ minikube config set memory 8192
5$ minikube config set cpus 4
6$ minikube config set driver docker
📁 6. Installeer de AWX Operator (overeenkomend met 24.6.1)
1$ git clone https://github.com/ansible/awx-operator.git
2$ cd awx-operator
3$ git checkout 2.14.0 # Matches AWX 24.6.1
4
5Installeer benodigde tools:
6$ sudo apt install -y make
7
8Installeer de operator:
9$ make deploy
10
11Controleer:
12$ kubectl get pods -n awx
📄 7. Maak de AWX Instance (CR)
Maak een bestand awx.yaml:
1apiVersion: awx.ansible.com/v1beta1
2kind: AWX
3metadata:
4 name: awx
5spec:
6 service_type: nodeport
7 ingress_type: none
8 image: quay.io/ansible/awx
9 image_version: 24.6.1
10 postgres_storage_class: standard
11 postgres_resource_requirements:
12 requests:
13 memory: 512Mi
14 cpu: 250m
15 limits:
16 memory: 1Gi
17 cpu: 500m
18 web_resource_requirements:
19 requests:
20 memory: 512Mi
21 cpu: 250m
22 limits:
23 memory: 2Gi
24 cpu: 1
25
26Daarna toepassen:
27$ kubectl apply -f awx.yaml -n awe
28
29Bekijk de deployment:
30$ kubectl get awx -n awx
31$ kubectl get pods -n awx -w
32
33$ kubectl get svc -n awx
🌐 8. Toegang tot de AWX website
1NodePort verkrijgen:
2$ kubectl get svc -n awx | grep awx-service
3
4Voorbeeld output:
5awx-service NodePort 10.0.0.94 <none> 8052:30437/TCP 5m
6awx-service NodePort 10.98.159.10 <none> 80:30153/TCP 5m29s
7
8Dan:
9$ minikube ip
10
11NodePort verkrijgen:
12$ kubectl get svc awx-service -n awx -o yaml
13
14$ minikube service awx-service -n awx
Of open in browser:
1$ minikube ip
2http://<minikube-ip>:<NodePort>
3http://192.168.49.2:31082/
🔐 9. Login credentials Het admin password verkrijgen:
1$ kubectl get secret awx-admin-password -n awx -o jsonpath="{.data.password}" | base64 --decode && echo
2* Username: admin
3* Password: zie de output van hierboven
🧼 10. (Optioneel) Open het Minikube dashboard Kubernetes Dashboard
1$ minikube dashboard
Stap-voor-stap: Auto-start AWX op Minikube na een Reboot
🔁 1. Zorg dat Docker opstart tijdens booten
1$ sudo systemctl enable docker
🚀 2. Maak een systemd service om Minikube automatisch op te starten Maak een nieuwe systemd unit:
1$ sudo vim /etc/systemd/system/minikube.service
2Paste this:
3
4[Unit]
5Description=Minikube K8s Cluster
6After=docker.service
7Requires=docker.service
8
9[Service]
10Type=oneshot
11ExecStart=/usr/local/bin/minikube start --driver=docker
12RemainAfterExit=yes
13User=your-username
14Environment=HOME=/home/your-username
15WorkingDirectory=/home/your-username
16
17[Install]
18WantedBy=multi-user.target
19
20🔧 Vervang hier your-username met de naam van de Linux username.
21
22Opslaan en uitvoeren:
23$ sudo systemctl daemon-reexec
24$ sudo systemctl daemon-reload
25$ sudo systemctl enable minikube.service
26
27Test dit zelf:
28$ sudo systemctl start minikube.service
29
30$ kubectl get pods -n awx -w
31NAME READY STATUS RESTARTS AGE
32awx-migration-24.6.1-pn969 0/1 Completed 0 21m
33awx-operator-controller-manager-68699bb54-pscct 2/2 Running 2 (64s ago) 68m
34awx-postgres-15-0 1/1 Running 1 (58s ago) 26m
35awx-task-86d87f596c-xm8wx 4/4 Running 4 (62s ago) 25m
36awx-web-7c76dcb5b8-ctmrf 3/3 Running 3 (54s ago) 25m
🛠️ 3. Verzeker dat AWX Operator en AWX pods auto-recoveren Kubernetes voert automatisch pod recovery uit. Zo lang als Minikube correct opstart en de AWX Operator gedeployed is met: make deploy …hiermee zal de AWX custom resource and pods opnieuw aangemaakt worden na een reboot.
Bevestig dit via:
1$ kubectl get pods -n awx
🌐 4. Maak de NodePort consistent Kubernetes kent automatisch een NodePort toe tenzij je deze expliciet instelt. Om de website altijd dezelfde poort te geven:
1$ kubectl patch svc awx-service -n awx --type='json' -p='[
2 {"op": "replace", "path": "/spec/type", "value":"NodePort"},
3 {"op": "replace", "path": "/spec/selector", "value":{
4 "app.kubernetes.io/component": "awx",
5 "app.kubernetes.io/managed-by": "awx-operator",
6 "app.kubernetes.io/name": "awx-web"
7 }},
8 {"op": "replace", "path": "/spec/ports/0/nodePort", "value":31082}
9]'
10
11
12$ vim awx-nodeport-service.yaml
13
14apiVersion: v1
15kind: Service
16metadata:
17 name: awx-service
18 namespace: awx
19spec:
20 type: NodePort
21 selector:
22 app: awx
23 ports:
24 - protocol: TCP
25 port: 80
26 targetPort: 8052
27 nodePort: 31082
28
29Opnieuw toepassen:
30$ kubectl apply -f awx-nodeport-service.yaml
31
32De website is dan te benaderen via:
33http://<server-ip>:31082
🧪 5. Controleer na de reboot Reboot de server:
1$ sudo reboot
2
3Na de reboot:
4$ minikube status
5$ kubectl get pods -n awx
Controleer de website:
1$ minikube ip
2http://<your-server-ip>:31082
Comments