Documentation


🚀 Architecture DevOps : Refonte CI/CD et Gestion de Configuration

Auteur : Administrateur Homelab
Date de révision : Avril 2026


1. Le Changement de Paradigme : Pourquoi cette refonte ?

Historiquement, notre cluster Kubernetes (via Tekton) gérait l'intégralité de la chaîne logicielle : de la fabrication des images Docker jusqu'à l'exécution de scripts Ansible via des Pods éphémères pour mettre à jour des serveurs. Cela créait plusieurs problèmes :

La Solution : La séparation des responsabilités (Séparation CI / CD).


2. L'Organisation Ansible : Le "Clean Code"

Pour supporter cette architecture, l'inventaire monolithique a été découpé selon les meilleures pratiques (DRY - Don't Repeat Yourself) en exploitant la pyramide de préséance d'Ansible.

La pyramide de préséance (Du plus faible au plus fort) :

  1. Defaults des Rôles (Niveau 1) : roles/mon_role/defaults/main.yml. Ex: allow_reboot: false. C'est la sécurité par défaut.
  2. Variables de Groupes (Niveau 2) : group_vars/*.yml. Ex: ansible_user: root pour tout le monde, écrasé par ansible_user: nancre dans group_vars/vm.yml.
  3. Variables d'Hôtes (Niveau 3) : host_vars/nom_host.yml. Ex: Port SSH 22022 spécifique au NAS Synology.
  4. Variables AWX (Niveau 4 - God Mode) : Paramètres passés via l'interface AWX (Extra Vars) lors d'un lancement manuel pour écraser toute autre règle.

Structure de l'Inventaire (Aperçu)


all:
  children:
    proxmox_hypervisors:
      hosts:
        proxmox-server:
          ansible_host: 10.151.151.249
        proxmox-ms:
          ansible_host: 10.151.151.239
    # ... Les variables spécifiques sont désormais dans group_vars/ et host_vars/
    

3. Les Workflows Clés : Comment on fait ?

A. La Synchronisation Événementielle (Ex: Homer)

Logique : Quand un fichier de configuration change sur Git, Tekton s'en aperçoit, mais délègue le déploiement à AWX.

B. Les Tâches Planifiées (Ex: Maintenance OS & Docker Prune)

Logique : On supprime les CronJobs de Kubernetes. Le Scheduler natif d'AWX prend le relais.

C. La Fabrication pure (Ex: code-server)

Logique : Reste 100% dans Kubernetes, car c'est du "Build" (CI).


4. Bilan et Bénéfices