Passer au contenu principal

Tower / AWX (Ansible)

Installation d'AWX

Depuis AWX 18, la méthode d'installation officielle est l'AWX Operator sur Kubernetes. Docker Compose n'est plus maintenu. Cette section couvre l'installation sur K3s, la distribution Kubernetes la plus simple pour un déploiement sur bare metal ou VM.

Prérequis

  • Ressources minimales : 4 vCPU, 8 Go RAM, 20 Go disque
  • OS : Debian 13, Ubuntu 22.04 ou RHEL 9
  • Réseau : accès Internet pour les images Docker (ou registry local)

Installer K3s

# Installation K3s (Kubernetes lightweight)
curl -sfL https://get.k3s.io | sh -

# Vérifier l'état
systemctl status k3s
kubectl get nodes

# Configurer kubectl pour l'utilisateur courant
mkdir -p ~/.kube
cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
chmod 600 ~/.kube/config
export KUBECONFIG=~/.kube/config

Installer l'AWX Operator

# Récupérer la dernière version de l'operator
AWX_VERSION=$(curl -s https://api.github.com/repos/ansible/awx-operator/releases/latest   | grep tag_name | cut -d '"' -f4)

# Appliquer le manifest de l'operator
kubectl apply -k "github.com/ansible/awx-operator/config/default?ref=${AWX_VERSION}"

# Suivre le déploiement
kubectl logs -f deployment/awx-operator-controller-manager -n awx-operator-system

Déployer AWX

# awx.yml
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx
  namespace: default
spec:
  service_type: nodeport
  nodeport_port: 30080
  admin_user: admin
  admin_password_secret: awx-admin-password
# Créer le secret pour le mot de passe admin
kubectl create secret generic awx-admin-password   --from-literal=password=MonMotDePasseAdmin

# Déployer AWX
kubectl apply -f awx.yml

# Suivre le déploiement (5-10 minutes)
kubectl logs -f deployments/awx-operator-controller-manager

# Vérifier les pods
kubectl get pods -l app.kubernetes.io/managed-by=awx-operator

Accéder à AWX

# Récupérer le port NodePort
kubectl get svc awx-service

# Récupérer le mot de passe admin si non défini manuellement
kubectl get secret awx-admin-password -o jsonpath='{.data.password}' | base64 --decode

AWX est accessible sur http://IP_SERVEUR:30080. Première connexion : admin / mot de passe défini.

Configuration initiale

Après connexion, configurer dans l'ordre :

  1. Credentials : clé SSH pour les machines cibles, credentials Git pour les projets
  2. Organisations : créer une organisation (ou utiliser Default)
  3. Projets : lier un dépôt Git contenant les playbooks
  4. Inventaires : créer l'inventaire des machines
  5. Job Templates : associer playbook + inventaire + credentials

Mises à jour

# Mettre à jour l'operator vers une nouvelle version
kubectl apply -k "github.com/ansible/awx-operator/config/default?ref=NEW_VERSION"

# AWX se met à jour automatiquement après la mise à jour de l'operator