Situation Pro : Projet SoluCloud - Agilité et Industrialisation

1. Contexte et Objectifs

Dans le cadre de la fusion entre Solutech et Horizon, la DSI a identifié deux failles majeures : l'absence de sauvegarde déportée (hors-site) pour le serveur GLPI et la centralisation non sécurisée des secrets techniques (mots de passe administrateur, clés SSH, identifiants de base de données) L'objectif de cette mission était de déployer SoluCloud (solution souveraine basée sur Nextcloud) en fonctionnant en Squad (équipe projet de 3). Nous avons utilisé une méthodologie Agile/Kanban pour coordonner le déploiement de serveurs de Labs et de Production, tout en industrialisant la configuration par scripts.

2. Besoins identifiés

  • Collaboration agile : Piloter le projet à plusieurs sans conflit de tâches (Imputabilité).
  • Sécurisation des flux : Garantir l'accès via HTTPS obligatoire pour protéger les données.
  • Gestion des secrets : Mettre en place un coffre-fort numérique pour l'équipe technique.
  • Résilience (Règle 3-2-1) : Déporter les sauvegardes du serveur GLPI vers le Cloud (copie hors-site).
  • Industrialisation : Automatiser l'installation des modules et la redirection de sécurité par script.

3. Solution technique retenue et justifications

Pour répondre aux exigences de Solutech, nous avons mis en œuvre la chaîne technologique suivante :

  • GitLab Kanban & Gestion des étiquettes (Labels) :
    • Justification : L'utilisation de colonnes personnalisées (Doing, Testing, Closed) permet un suivi précis du workflow. Cela prouve la maîtrise de la Compétence 1.4 en évitant que deux techniciens travaillent sur la même brique simultanément.
  • Nextcloud sur socle LAMP :
    • Justification : Nextcloud offre une souveraineté totale sur les données. Le choix des plugins Passwords (gestion des secrets) et Draw.io (schémas réseau) transforme un simple stockage en un véritable hub d'ingénierie.
  • Protocole HTTPS & Redirection Apache (sed) :
    • Justification : Sécurisation du transport. L'automatisation de la redirection via un script Bash garantit qu'aucun serveur de l'entreprise ne restera vulnérable en HTTP "clair".
  • Sauvegarde déportée via WebDAV (curl) :
    • Justification : Application de la règle du 3-2-1. En utilisant Nextcloud comme cible de sauvegarde pour GLPI, nous assurons qu'un sinistre physique sur le serveur de gestion de parc ne détruira pas ses propres archives.
  • Séparation des Secrets et du Code (.gitignore) :
    • Justification : Utilisation d'un fichier .nextcloud.creds local non versionné. C'est une pratique de cybersécurité essentielle pour éviter la fuite d'identifiants sur la forge logicielle.

4. Réalisation (Ce que j'ai fait)

  1. Initialisation Agile : Configuration du Board Kanban GitLab avec 12 tickets détaillés et répartition des rôles au sein de la Squad.
  2. Mise en service de l'infrastructure : Déploiement du serveur LAMP et installation de l'instance Nextcloud sur une VM Debian dédiée.
  3. Industrialisation technique :
    • Rédaction du script install_plugins.sh pour injecter Passwords/Draw.io et forcer le HTTPS.
    • Rédaction du script glpi_to_cloud.sh (Étudiant C) incluant la gestion de l'intégrité par MD5 et la journalisation des succès/échecs.
  4. Cycle de Cross-Test (DevOps) : Validation croisée des scripts sur les serveurs de "Lab" avant toute mise en production.
  5. Recette et Documentation : Rédaction d'un Procès-Verbal de recette (RECETTE.md) et fusion des procédures techniques dans un README.md unifié.

5. Preuves de réalisation finale

Preuve Description
1 Board Kanban Initial Tableau GitLab avec les 11 tickets créés, labellisés et assignés aux membres (A, B et C).
2 Dashboard Nextcloud Page d'accueil après installation LAMP et configuration initiale.
3 Automatisation Résilience (Étudiant C) Code du script glpi_to_cloud.sh (gestion logs, transfert WebDAV, MD5).
4 Industrialisation Services (Étudiant B) Code du script install_plugins.sh (injection apps Passwords/Draw.io et redirection HTTPS via sed).
5 Durcissement Admin (Étudiant A) Interface d'admin montrant le quota de 1 Go sur le compte prenom_srv_backup.
6 Identité Visuelle (Étudiant A) Page de connexion personnalisée (Logo Solutech + Slogan).
7 Documentation Unifiée Fichier README.md final sur GitLab (procédures fusionnées).
8 Cartographie Schéma Draw.io (Topologie en étoile : Switch, Routeur, GLPI, SoluCloud, IPs).
9 Procès-Verbal Fichier RECETTE.md complété, signé, avec mention "GO".
10 Clôture de Sprint Board Kanban final avec tous les tickets dans la colonne Closed.

📸 Preuve 1 : Board Kanban Initial

Tableau GitLab avec les 11 tickets créés, labellisés et assignés aux membres (A, B et C). Board Kanban Initial

📸 Preuve 2 : Dashboard Nextcloud

Page d'accueil après installation LAMP et configuration initiale. Dashboard Nextcloud

📸 Preuve 3 : Automatisation Résilience (Étudiant C)

Code du script glpi_to_cloud.sh (gestion logs, transfert WebDAV, MD5). Script glpi_to_cloud.sh

📸 Preuve 4 : Industrialisation Services (Étudiant B)

Code du script install_plugins.sh (injection apps Passwords/Draw.io et redirection HTTPS via sed). Script install_plugins.sh

📸 Preuve 5 : Durcissement Admin (Étudiant A)

Interface d'admin montrant le quota de 1 Go sur le compte prenom_srv_backup. Admin Quota

📸 Preuve 6 : Identité Visuelle (Étudiant A)

Page de connexion personnalisée (Logo Solutech + Slogan). Connexion Personnalisée

📸 Preuve 7 : Documentation Unifiée

Fichier README.md final sur GitLab (procédures fusionnées). README Final

📸 Preuve 8 : Cartographie

Schéma Draw.io (Topologie en étoile : Switch, Routeur, GLPI, SoluCloud, IPs). Schéma Topologie

📸 Preuve 9 : Procès-Verbal

Fichier RECETTE.md complété, signé, avec mention "GO". RECETTE Signée

📸 Preuve 10 : Clôture de Sprint

Board Kanban final avec tous les tickets dans la colonne Closed. Board Kanban Final