GAS

Florian

Projets Personnels

Infrastructure Proxmox

Virtualisation · Linux · Réseau
Logo de la solution Proxmox

Présentation du projet

Ce projet personnel consiste à mettre en place une infrastructure de virtualisation complète en utilisant Proxmox VE (Virtual Environment). L'objectif est de créer un environnement de test et de développement robuste, capable d'héberger plusieurs machines virtuelles (VM) et containers (CT) pour divers services tels que GitLab, NextCloud, un serveur VPN, et un serveur multimédia Jellyfin.

Mise en place du serveur

Objectif : Installer Proxmox VE sur un nœud et préparer l’infrastructure pour la virtualisation, avec stockage partagé et réseau interne. Cette étape pose les fondations pour l’ensemble du "futur cluster".

Préparation du matériel

Avant l’installation, il est important de vérifier que le matériel respecte les exigences minimales :

  • Processeur 64 bits compatible avec la virtualisation
  • Mémoire RAM : minimum 8 Go
  • Stockage : minimum 10 Go pour le système + espace supplémentaire pour les VM

Pour ce projet, la configuration utilisée est la suivante :

  • Processeur : Intel Xeon E3
  • RAM : 16 Go
  • Disques : SSD 500 Go pour le système, SSD supplémentaire 500 Go pour les backups
Installation de Proxmox VE

Le processus d’installation se déroule en trois étapes principales :

  1. Téléchargement de l’image ISO depuis le site officiel de Proxmox.
  2. Création d’une clé USB bootable avec Rufus ou tout autre outil de création de média bootable.
  3. Démarrage du serveur à partir de la clé USB et suivi des instructions pour installer Proxmox VE.
Configuration initiale

Après l’installation, il est nécessaire de configurer le serveur pour permettre la virtualisation :

  • Accès à l’interface web de Proxmox via l’adresse IP configurée (ici : 192.168.11.200).
  • Configuration du stockage local et ajout d’un second SSD de 500 Go pour les backups automatiques.
  • Configuration du réseau interne pour permettre la communication sécurisée entre les VM et containers.
Mise à jours des package

Avant de commencer à déployer des machines virtuelles, il est crucial de s’assurer que le système Proxmox est à jour avec les derniers correctifs de sécurité et améliorations de performance.

BASH
apt update && apt 
upgrade -y pveam update 
              

Machines virtuelles

Dans cette étape, j'ai déployé et configuré l'ensemble des machines virtuelles (VM) et containers (CT) nécessaires pour mes services. L'objectif était d'avoir un environnement stable, facilement maintenable et automatisé pour les sauvegardes et les mises à jour.

Création et gestion des machines
  • Création de templates personnalisés pour VM et CT afin de standardiser l'installation des systèmes.
  • Déploiement des containers LXC pour des services spécifiques : GitLab pour le versioning, NextCloud pour le stockage, et un Ubuntu dédié pour VPN et Jellyfin.
  • Déploiement de VM (Machine-virtuelles) supplémentaires pour des site web et bases de données personnalisés en utilisant l'iso Ubuntu Server.
  • Mise en place de sauvegardes automatiques et snapshots réguliers pour garantir la continuité du service.
Configuration avancée
  • Réseaux internes configurés pour que chaque VM/CT puisse communiquer de manière sécurisée.
  • Automatisation des backups vers le stockage partagé du cluster Proxmox.
  • Supervision des machines avec alertes en cas de problème ou de panne.

Ce que ce projet m'a apporté

La mise en place de cette infrastructure Proxmox m'a permis de développer de nombreuses compétences techniques et pratiques :

  • Maîtrise des concepts de virtualisation et de gestion des ressources.
  • Compétences en administration système Linux, y compris la gestion des réseaux et du stockage.
  • Expérience pratique dans le déploiement et la gestion de services critiques tels que GitLab et NextCloud.
  • Compréhension approfondie des bonnes pratiques de sécurité et de sauvegarde des données.
Compétences transversales
  • Organisation et structuration d’une infrastructure complète.
  • Autonomie dans la recherche de solutions et la résolution de problèmes.
  • Capacité à documenter et maintenir un environnement technique.
  • Vision globale d’un système en production.

GitLab

GitLab est un service de gestion de version et d'intégration continue qui permet de gérer des projets logiciels, des dépôts Git, des pipelines CI/CD et des environnements de développement.

Logo de la solution GitLab

Installation

Installation de GitLab sur un serveur Ubuntu 20.04 avec Docker Compose.

  • Installation de Docker et Docker Compose.
  • Téléchargement du fichier docker-compose.yml depuis le site officiel de GitLab.
  • Configuration du fichier docker-compose.yml pour l'installation.
  • Démarrage du conteneur GitLab avec la commande docker-compose up -d.

Configuration

Configuration initiale de GitLab après l'installation.

  • Accès à l'interface web via l'adresse IP configurée (ici : 192.168.11.201).
  • Configuration du mot de passe administrateur initial.
  • Création d'un groupe et d'un projet initial pour les tests.
  • Configuration des paramètres globaux (nom, description, etc.).

Sécurité

Mise en place des mesures de sécurité pour protéger l'environnement GitLab.

  • Activation du chiffrement HTTPS avec Let's Encrypt.
  • Mise en place d'une politique de mot de passe forte.
  • Configuration des permissions d'accès aux projets et groupes.
  • Mise à jour régulière du logiciel GitLab pour éviter les vulnérabilités connues.