Dans un contexte où la virtualisation est devenue incontournable dans les environnements informatiques professionnels et personnels, Proxmox VE s’impose comme une solution complète, robuste et accessible. Destiné aussi bien aux entreprises qu’aux passionnés, Proxmox permet de gérer efficacement des machines virtuelles (VM) et des conteneurs à partir d’une interface unifiée.

Qu’est-ce que Proxmox VE ?

Proxmox Virtual Environment (VE) est une plateforme de virtualisation open-source basée sur Debian. Elle prend en charge deux technologies majeures : KVM pour la virtualisation complète des machines virtuelles et LXC pour la virtualisation légère via des conteneurs Linux.

Accessible via une interface web intuitive, Proxmox offre une gestion centralisée des ressources, des snapshots, du stockage, des sauvegardes, et de la haute disponibilité.

Principales fonctionnalités

  1. Virtualisation hybride : Gère à la fois des VM avec KVM et des conteneurs avec LXC, offrant une grande flexibilité.
  2. Interface web complète : Administration centralisée via une interface web ergonomique, avec vue en temps réel sur les ressources.
  3. Support du clustering : Possibilité de regrouper plusieurs nœuds dans un cluster pour la haute disponibilité et la gestion centralisée.
  4. Snapshots et sauvegardes : Création de snapshots à chaud, planification de sauvegardes automatisées.
  5. Stockage flexible : Support de divers types de stockage : local, iSCSI, NFS, Ceph, ZFS, etc.
  6. Réseautage avancé : Gestion des VLAN, bridges, routage, et pare-feu intégré.

Pourquoi choisir Proxmox ?

  • Open-source : Gratuit, avec la possibilité de souscrire à un support professionnel.
  • Stabilité : Utilise des technologies éprouvées comme KVM, LXC, et ZFS.
  • Simplicité d’administration : Grâce à son interface web intuitive et ses outils en ligne de commande (CLI).
  • Communauté active : Documentation abondante, forums réactifs, mises à jour régulières.

Mise en œuvre

Pour la démonstration, on va mettre en place Proxmox mais sur une machine physique (cela peut marcher également sur une machine virtuelle), on va également créer 2 conteneurs afin d’avoir un serveur apache sur l’un, et un service de base de donnée sur l’autre conteneur. L’objectif c’est d’avoir une page web

1. Installation de Proxmox sur un Serveur Physique 

Prérequis : 

  • Un serveur physique avec au moins 8 Go de RAM et un processeur compatible avec la virtualisation 
  • Une clé USB bootable avec l’ISO de Proxmox VE 

Étapes : 

  1. Démarrer sur la clé USB et sélectionner l’installation de Proxmox VE. 
  1. Suivre l’assistant d’installation en définissant le disque cible, le mot de passe root et les paramètres réseau. 
  1. Redémarrer et accéder à l’interface web via https://10.0.99.111:8006 

2. Création et Configuration des Conteneurs LXC 

Création des Conteneurs 

  1. Télécharger un template Debian (et Ubuntu) dans Proxmox : pveam update 
    pveam download local debian-11-standard_11.6-1_amd64.tar.zst 
      
  1. Créer un conteneur pour le Front-end :  
  1. Nom : frontend 
  1. Ressources : 2 CPU, 2 Go RAM, 10 Go disque 
  1. Interface réseau : vmbr0 (pont réseau) 
  1. Créer un conteneur pour le Back-end :  
  1. Nom : backend 
  1. Ressources : 2 CPU, 2 Go RAM, 10 Go disque 
  1. Interface réseau : vmbr0 

Configuration Réseau 

Assurer la connectivité Internet sur chaque conteneur ainsi que sur votre serveur, donc pour ça on fait : 
nano /etc/network/interfaces

Et ajouter : 

auto lo 
iface lo inet loopback 

iface enp0s3 inet manual 

auto vmbr0 
iface vmbr0 inet static 
         address 10.0.99.111/16 (Pour cette démonstration je devais le faire avec cette configuration IP, mais assurez-vous de mettre le vôtre plutôt que celle-ci)
         gateway 10.0.255.254 
         bridge-ports eno1 
         bridge-stp off 
         bridge-fd 0 

auto vmbr1 
iface vmbr1 inet static 
         address 192.168.1.254 (Cette adresse va communiquer avec Internet)
         netmask 255.255.255.0 
         broadcast 192.168.1.255 
         bridge_ports none 
         bridge_stp off 
         bridge_fd 0 
         post-up echo 1 > /proc/sys/net/ipv4/ip_forward 
         post-up iptables -t nat -A POSTROUTING -s ‘192.168.1.0/24’ -o vmbr0 -j MASQUERADE 
         post-down iptables -t nat -D POSTROUTING -s ‘192.168.1.0/24’ -o vmbr0 -j MASQUERADE 

Les conteneurs sont configurés sur le réseau 192.168.1.0. Ensuite, l’administrateur réseau définit les adresses IP des conteneurs (dans notre cas, l’un des deux conteneurs est configuré en 192.168.1.100, l’autre en 192.168.1.106). 

3. Installation et Configuration des Services 

3.1 Installation d’Apache sur le Conteneur Frontend 

Apache est un serveur web, son rôle est d’écouter les requêtes émises par les navigateurs (qui demandent des pages web), de chercher la page demandée et de la renvoyer.

apt update && apt install -y apache2 
systemctl enable apache2 
systemctl start apache2 

Vérification : 

systemctl status apache2 

3.2 Installation de MariaDB sur le Conteneur Backend 

MariaDB est un système de gestion de base de données relationnelle open source. C’est l’un des serveurs de bases de données les plus populaires au monde.

apt install -y mariadb-server 
systemctl enable mariadb 
systemctl start mariadb 

Créer une base de données : 

mysql -u root -p 
CREATE DATABASE (nom-base-de-donnee); 
CREATE USER ‘user’@’%’ IDENTIFIED BY ‘mdp’; 
GRANT ALL PRIVILEGES ON Neurotek.* TO ‘user’@’%’; 
FLUSH PRIVILEGES; 
EXIT; 

Modifier /etc/mysql/mariadb.conf.d/50-server.cnf   : 
bind-address = 0.0.0.0 

Redémarrer MariaDB : 
systemctl restart mariadb 

4. Configuration du port mapping avec iptables

Sur le serveur Proxmox : 

iptables -t nat -A PREROUTING -p tcp –dport 8080 -j DNAT –to-destination 192.168.1.100:80 
iptables -t nat -A PREROUTING -p tcp –dport 2222 -j DNAT –to-destination 192.168.1.101:22 
iptables -t nat -A POSTROUTING -j MASQUERADE 

Sauvegarde : 

apt install iptables-persistent 
netfilter-persistent save 
netfilter-persistent reload 

5. Installation d’Adminer sur le Frontend 

L’intérêt d’installer Adminer va être pour les développeurs de simplifier la gestion de la base de données, car cette dernière dispose d’un environnement graphique afin de pouvoir visualiser la base de données.
Donc pour l’installation d’Adminer, rien de plus simple :

wget https://www.adminer.org/latest.php -O adminer.php 

Vous pourrez accéder via : https://votre_adresse_ip:8080/adminer.php

6. Configuration de SSH pour les Développeurs 

L’activation étant déjà activé avec cette commande :
iptables -t nat -A PREROUTING -p tcp –dport 2222 -j DNAT –to-destination 192.168.1.101:22 
on va pouvoir créer les comptes utilisateurs, afin que les développeurs puissent déposer leurs fichiers de configuration

adduser user 
usermod -aG sudo user

Configurer /etc/ssh/sshd_config :

PermitRootLogin no 
PasswordAuthentication yes 
AllowUsers dev

Redémarrer SSH :
systemctl restart ssh

Les développeurs peuvent se connecter en ssh avec :
ssh user@votre_adresse_ip

7. Backup 

Pour effectuer des sauvegardes, il faut d’abord accéder au centre de données et se connecter à l’interface de gestion des sauvegardes. Ensuite, configurez les paramètres de sauvegarde (fréquence, types de données, support de stockage). Choisissez un stockage local ou cloud, et mettez en place des sauvegardes redondantes. Testez régulièrement les sauvegardes pour garantir leur bon fonctionnement. Enfin, activez un suivi automatisé pour être alerté en cas d’échec. 

8. Conclusion

Le serveur Proxmox est installé avec deux conteneurs fonctionnels : 

  • Le Front-end avec Apache et Adminer 
  • Le Back-end avec MariaDB et accès réseau sécurisé 
  • Un système de port mapping via iptables 
  • SSH configuré pour le dépôt des fichiers par les développeurs