Table des matières

AWX - build to run

AWX Resource Requirements

Voir :

Requirement Required
RAM 16 GB
CPUs 4
Local disk 40 GB min (20GB min available under /var/lib/awx)
Local disk 1500 IOPS

PostgreSQL requirements

Voir :

Requirement Required
RAM 16 GB
CPUs 4
Local disk 20 GB dedicated hard disk space. 150 GB+ recommended
Local disk 1500 IOPS

Prérequis logiciels

Architecture

Choix :

Conf système hôte

Changer dans Job settings - Container Run Options

[
  "--network",
  "slirp4netns:enable_ipv6=true"
]

Désactiver le SWAP. Totalement ou memory.swap.max=0 ? Voir

cat /sys/fs/cgroup/memory.swap.max

Conf Podman

Tester le démarrage automatique native Podman

podman update --restart=always kind-control-plane

A la place de ~/.config/systemd/user/container-kind-control-plane.service

Réseau

Voir :

Conf AWX

Voir :

kubectl get AWX -o json | jq '.items[0].spec'

Sauvegarde

De tous les objets AWX :

awx -f yaml export > all.yaml

FIXME: prévoir l'export / import de la base

PoC Stockage

Voir :

cluster-config.yml

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  extraPortMappings:
    - containerPort: 30000
      hostPort: 30000
      protocol: TCP
  extraMounts:
    - containerPath: /data/files
      hostPath: /data/files

ansible-files-pv.yml

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: awx-ansible-files-volume
spec:
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  capacity:
    storage: 2Gi
  storageClassName: local-path
  hostPath:
    path: /data/ansible-files

ansible-files-pvc.yml

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: awx-ansible-files-claim
spec:
  accessModes:
    - ReadWriteOnce
  volumeMode: Filesystem
  resources:
    requests:
      storage: 2Gi
  storageClassName: local-path
kubectl create secret generic awx-custom-certs --from-file=bundle-ca.crt=/etc/ssl/certs/ca-bundle.crt

cluster-config.yml

---

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
  - role: control-plane
    extraPortMappings:
      - containerPort: 30000
        hostPort: 30000
        protocol: TCP
    extraMounts:
      - containerPath: /data/ansible-files
        hostPath: /data/ansible-files
      - containerPath: /data/projects
        hostPath: /data/projects
      - containerPath: /data/postgres-13
        hostPath: /data/postgres-13

Fixer la version avec l'option --image

kind create cluster --image kindest/node:v1.34.2

Available tags can be found at https://hub.docker.com/r/kindest/node/tags

kind create cluster --config=cluster-config.yml --name=kind2
 
# kubectl create deployment nginx --image=nginx --port=80
# kubectl create service nodeport nginx --tcp=80:80 --node-port=30000
 
kubectl create service nodeport awx-service --tcp=80:80 --node-port=30000

Dans jobs settings changer :

Paths to expose to isolated jobs

[
  "/etc/pki/ca-trust:/etc/pki/ca-trust:O",
  "/usr/share/pki:/usr/share/pki:O"
]