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 / backup

  1. Export de tous les objets AWX en YAML
  2. Export de la base de données
  3. Sauvegarde avec AWX Operator

Export de tous les objets AWX en YAML

awx -f yaml export > all.yaml

NOTE : Les credentials ne sont pas exportés, ni certains objets

Export de la base de données PostgreSQL

Voir :

# retrieve your secret's name, something like awx-postgres-configuration
kubectl get secrets
 
# show secrets 
kubectl get secrets awx-your-instance-postgres-configuration -o yaml
 
kubectl port-forward awx-your-postgre-pod 5432:5432

Source : https://forum.ansible.com/t/need-advices-on-awx-config-import-export/6974/6

Sauvegarde avec AWX Operator

Voir :

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"
]

Debug