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.

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 :
- Un script Bash génère dynamiquement un fichier Terraform pour la nouvelle VM (VMID et IP calculés automatiquement)
terraform apply, ciblé uniquement sur cette VM, crée la ressource sur Proxmox- Si demandé, un playbook Ansible rejoint la VM au domaine Active Directory
- Les agents de supervision (Prometheus) et d'inventaire (GLPI) sont installés et enregistrés automatiquement
- 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.
