Aller au contenu

Semaphore — Portail d'automatisation

Rôle dans le projet

Semaphore constitue le point d'entrée unique du projet : toutes les actions d'infrastructure (création de VM, installation de services, mises à jour, sauvegardes) sont déclenchées depuis son interface web, sous forme de formulaires (Survey Variables), sans que l'utilisateur ait à connaître les commandes Terraform ou Ansible sous-jacentes.

Interface Semaphore

Architecture interne

  • Repositories : deux dépôts Git locaux connectés — un pour les fichiers Terraform, un pour les playbooks Ansible
  • Inventories : inventaires statiques pour les hôtes fixes (AD-01, CM-01, MON-01), et inventaires générés dynamiquement par les scripts pour les VM créées à la demande
  • Environments (Variable Groups) : centralisent les secrets (token API Proxmox, mots de passe) de façon chiffrée, partagés entre plusieurs templates
  • Templates : chaque action d'infrastructure correspond à un template dédié

Templates principaux

Template Fonction
New-VM Crée une VM (Linux ou Windows), configure le réseau, rejoint le domaine si demandé, installe les agents de supervision/inventaire
Delete-VM Supprime une VM et désenregistre ses traces (AD, DNS, Prometheus, GLPI)
AD-Roles Promeut une VM Windows en contrôleur de domaine
AD-Create-Object / AD-Delete-Object Gère les utilisateurs et groupes Active Directory
Join-Domain Rejoint une VM existante au domaine, a posteriori
Check-Updates-Windows / Check-Updates-Linux Vérifie les mises à jour disponibles sans les installer
Update-Windows / Update-Linux Installe les mises à jour système
Install-Monitoring Déploie Prometheus/Grafana
Install-Log-Agent Déploie l'agent de collecte de logs (Grafana Alloy)
Install-GLPI / Install-Teampass / Install-PBS / Install-Greenbone Déploient chacun des services applicatifs
Install-WebStack Déploie une stack web de test (HTML ou PHP + base de données)

Fonctionnement de New-VM

Ce template illustre le principe central du projet :

  1. Un script Bash génère dynamiquement un fichier Terraform pour la nouvelle VM (VMID et IP calculés automatiquement)
  2. terraform apply, ciblé uniquement sur cette VM, crée la ressource sur Proxmox
  3. Si demandé, un playbook Ansible rejoint la VM au domaine Active Directory
  4. Les agents de supervision (Prometheus) et d'inventaire (GLPI) sont installés et enregistrés automatiquement
  5. L'agent de logs (Alloy) est installé et configuré pour pointer vers le serveur Loki

Delete-VM effectue l'opération inverse : nettoyage AD, retrait des métriques Prometheus (y compris purge des séries historiques), suppression de la fiche GLPI, puis destruction de la ressource Terraform.

Interface Semaphore