Infrastructure IA auto-hébergée avec Ollama
Déploiement d'une solution d'IA locale (Ollama + Open WebUI) sur Rocky Linux 9 dans une VM VMware ESXi.
Contexte du projet
Dans le cadre du BTS SIO (option SISR), j'ai mis en place une infrastructure IA auto-hébergée afin de tester des modèles de langage (LLM) directement sur un serveur local, sans dépendre d'un service cloud. L'objectif est de comprendre la chaîne complète : virtualisation, administration Linux, conteneurs Docker, services réseau et consommation d'API.
La solution s'appuie sur Ollama (moteur d'exécution des modèles) et Open WebUI (interface web) déployés sur une VM Rocky Linux hébergée sur VMware ESXi.
Spécifications : Rocky Linux 9, 2 vCPU, 8 Go RAM, 60 Go de stockage.
Outils et technologies
Livrables
Compétences E5 validées
Ce projet valide plusieurs compétences du référentiel BTS SIO pour l'Épreuve E5. Voir le tableau complet E5 →
Bloc 4 : Travailler en mode projet
- Analyser les objectifs et les modalités d'organisation d'un projet
- Planifier les activités de déploiement
Bloc 5 : Mettre à disposition un service
- Réaliser les tests d'intégration et d'acceptation d'un service
- Déployer un service (Ollama + Open WebUI)
Bloc 6 : Développement professionnel
- Mettre en œuvre des outils et stratégies de veille informationnelle (IA/LLM)
- Mettre en place son environnement d'apprentissage personnel
Objectifs du projet
Architecture et schémas
L'hyperviseur VMware ESXi héberge une VM Rocky Linux 9. Ollama tourne en tant que service systemd et expose une API HTTP sur le port 11434. Open WebUI est déployé en conteneur Docker et fournit l'interface web sur le port 8080.
Flux : Navigateur → Open WebUI → Ollama → Modèle LLM (Phi-3, Llama 3.2).
Schéma global (ESXi → VM Rocky Linux → Open WebUI + Ollama)
Détails réseau / ports (optionnel)
Étapes d'implémentation
curl, wget, git, nano.firewall-cmd.systemctl status ollama).ollama pull phi3, ollama pull llama3.2:3b, puis test en CLI.Difficultés rencontrées
Solutions appliquées
--network=host).firewalld pour autoriser
les ports nécessaires : 8080 (Open WebUI) et, si besoin, 11434 (API Ollama exposée).Commandes clés
Voici les principales commandes utilisées pour déployer et configurer l'infrastructure IA.
Installation d'Ollama
# Télécharger et installer Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Vérifier le service
systemctl status ollama
systemctl enable ollama --now
Configuration réseau (expose API)
# Créer un override systemd pour exposer l'API
sudo mkdir -p /etc/systemd/system/ollama.service.d
sudo nano /etc/systemd/system/ollama.service.d/override.conf
# Contenu du fichier override.conf :
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
# Recharger et redémarrer
sudo systemctl daemon-reload
sudo systemctl restart ollama
Configuration firewalld
# Ouvrir le port 8080 (Open WebUI)
sudo firewall-cmd --permanent --add-port=8080/tcp
# Ouvrir le port 11434 (API Ollama, optionnel)
sudo firewall-cmd --permanent --add-port=11434/tcp
# Recharger le firewall
sudo firewall-cmd --reload
# Vérifier les ports ouverts
sudo firewall-cmd --list-ports
Téléchargement et test des modèles
# Télécharger le modèle Phi-3
ollama pull phi3
# Télécharger Llama 3.2 (3B)
ollama pull llama3.2:3b
# Lister les modèles installés
ollama list
# Tester un modèle en CLI
ollama run phi3 "Bonjour, peux-tu te présenter ?"
Déploiement d'Open WebUI
# Installer Docker
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable docker --now
# Déployer Open WebUI
docker run -d \
--name open-webui \
-p 8080:8080 \
-e OLLAMA_BASE_URL=http://localhost:11434 \
-v open-webui:/app/backend/data \
--restart always \
ghcr.io/open-webui/open-webui:main
# Vérifier le conteneur
docker ps
docker logs open-webui
Résultats et captures
La VM héberge une solution IA locale opérationnelle : l'interface Open WebUI est accessible depuis le réseau et permet de dialoguer avec des modèles LLM exécutés par Ollama.
Astuce : cliquez sur une image pour l'agrandir (zoom).
SSH + mise à jour système (dnf update -y)
Installation des outils de base (curl, wget, git, nano)
Sécurité : SELinux + ouverture des ports via firewall-cmd
Installation d'Ollama (zstd + script officiel)
Service Ollama actif (systemctl status ollama)
Téléchargement du modèle Phi-3 (ollama pull phi3)
Test en CLI + override systemd (configuration Ollama)
Installation de Docker (pré-requis Open WebUI)
Déploiement d'Open WebUI (conteneur Docker)
Open WebUI accessible via http://IP:8080 (phi3:latest)
Exemple de conversation dans Open WebUI (réponse du modèle)
Ressources système (12-ressources-système.png)