
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
- Virtualisation hybride : Gère à la fois des VM avec KVM et des conteneurs avec LXC, offrant une grande flexibilité.
- Interface web complète : Administration centralisée via une interface web ergonomique, avec vue en temps réel sur les ressources.
- Support du clustering : Possibilité de regrouper plusieurs nœuds dans un cluster pour la haute disponibilité et la gestion centralisée.
- Snapshots et sauvegardes : Création de snapshots à chaud, planification de sauvegardes automatisées.
- Stockage flexible : Support de divers types de stockage : local, iSCSI, NFS, Ceph, ZFS, etc.
- 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 :
- Démarrer sur la clé USB et sélectionner l’installation de Proxmox VE.
- Suivre l’assistant d’installation en définissant le disque cible, le mot de passe root et les paramètres réseau.
- 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
- Télécharger un template Debian (et Ubuntu) dans Proxmox : pveam update
pveam download local debian-11-standard_11.6-1_amd64.tar.zst
- Créer un conteneur pour le Front-end :
- Nom : frontend
- Ressources : 2 CPU, 2 Go RAM, 10 Go disque
- Interface réseau : vmbr0 (pont réseau)
- Créer un conteneur pour le Back-end :
- Nom : backend
- Ressources : 2 CPU, 2 Go RAM, 10 Go disque
- 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