Skip to Content
L’échange d’apprentissage de HIC débute le 13 Juillet 2026. Voir le programme
LectureÉlément 2 sur 22 · 10 min

Mise en place de l’environnement et de l’infrastructure

Voici le sous-module Infrastructure du parcours Ingénierie système de l’Échange HIC : mise en place du serveur et de l’environnement, Docker, PostgreSQL, la stack d’entrepôt de données et le déploiement. C’est le runbook unique et unifié pour monter la plateforme d’entrepôt de données MNCH depuis l’infrastructure nue jusqu’à une stack analytique en fonctionnement — il regroupe le playbook de provisionnement de la VM, les playbooks Ansible utilitaires et la documentation de déploiement de l’entrepôt en un seul flux continu.

Partie 1 sur 4Atelier 1 : Provisionner et configurer · Atelier 2 : Déployer et livrer · Exploitation et dépannage

Remarque sur les valeurs de ce guide. Les hôtes, noms d’utilisateur, IP et comptes de base de données concrets des documents sources sont présentés ici comme des valeurs de substitution (p. ex. <DEPLOY_HOST>, <DEPLOY_USER>, <DB_USER>, <VM_STATIC_IP>). Remplacez-les par les vraies valeurs de votre environnement au moment d’exécuter les commandes — conservez les vraies valeurs dans votre coffre de secrets / gestionnaire de mots de passe, pas dans ces pages.

Vue d’ensemble

La plateforme est construite en quatre couches empilées. Chaque couche est provisionnée une fois puis largement laissée telle quelle ; les changements du quotidien passent par le pipeline CI/CD au sommet.

Couche 4Application entrepôtPrefect · dbt · Dagster · Superset

Déployée sous forme de 3 conteneurs Docker via la CI/CD GitHub Actions

Couche 3Configuration de base de la VMPlaybooks Ansible 01–06

Mises à jour, pare-feu, nginx, Docker, client PostgreSQL, SSL

Couche 2VM invitéeUbuntu 22.04 sur réseau NAT libvirt

IP privée statique · redirection de ports sur l’hôte · reverse proxy · snapshot

Couche 1Hôte KVM / libvirtMachine physique ou bare-metal cloud

IP publique · pont NAT virbr0 (192.168.122.0/24) · virt-install

Et voici le flux des requêtes et des données une fois que tout est en service :

Où vivent les bases de données

L’entrepôt utilise un seul serveur PostgreSQL externe (non conteneurisé), qui héberge quatre bases de données distinctes. Retenez bien cette distinction — c’est la source de confusion la plus fréquente :

Base de donnéesAppartient àRôle
prefect_dbPrefectLes métadonnées d’orchestration propres à Prefect
superset_dbSupersetL’état de l’application Superset (utilisateurs, graphiques, tableaux de bord)
dagster_dbDagsterLe stockage Dagster des runs, du journal d’événements et des planifications
<warehouse_db> (par défaut mnch_main_db)le pipelineLe véritable entrepôt de données : landing → staging → intermediate → marts

Phase 0 — Liste de vérification des prérequis

Avant de commencer, confirmez que vous disposez de tout ce qui suit.

Sur l’hôte KVM :

  • KVM + libvirt installés (virsh, virt-install)
  • Un pont NAT libvirt (par défaut virbr0, 192.168.122.0/24)
  • Une IP publique statique avec la possibilité de rediriger des ports
  • L’ISO Ubuntu 22.04 LTS Server disponible sur l’hôte
  • Outils : virsh, virt-install, iptables, netplan, nginx
  • Accès SSH + sudo à l’hôte ; accès à la console série pour l’installation de l’OS

Sur votre machine de contrôle (portable) :

  • Ansible 2.9+ installé (pour la Phase 2)
  • La CLI GitHub  (gh), authentifiée (gh auth login) — pour la Phase 3
  • Le matériel de clés SSH pour l’utilisateur de déploiement de la VM

Dépendances externes :

  • Un serveur PostgreSQL joignable pour les quatre bases de données ci-dessus
  • Les identifiants des API sources eBuzima et HMIS/DHIS2
  • (Optionnel mais recommandé) un nom de domaine pointant vers l’IP publique, pour du vrai TLS

La suite

Les prérequis en main, rendez-vous à Atelier 1 : Provisionner la VM et configurer avec Ansible pour créer la VM invitée sur l’hôte KVM et amener son OS à un socle sécurisé et prêt pour Docker.