Prérequis
Machine (SelfHosting)
Ces pré requis sont défini pour une configuration en Auto-hébergement. Ceci n'est pas applicable en entreprise ou l'on préférera des processeurs super-threadés tel que des Intel Xeon 3/5 ou E comme sur les DELL PowerEdge ou HP Proliant.
Type | Recommandations |
---|---|
CPU | Intel Core i3 ou Celeron J ou superieur, 2cores min. (4threads min.) |
RAM | 8Gb min. 16Gb+ recommandé, DDR4 (DIMM ou SODIMM) cadence a 1333mhz min. |
Disques | 256Go et/ou 1To+ pour l'OS et les datas |
Arch | 64Bits uniquement avec support X86_32 |
OS | Debian 12 / SparkyLinux 7.X |
Bootload | UEFI et BIOS Legacy gérés |
Avant de commencer
PROXMOX fourni une procédure qui n'est adapté qu'aux entreprise. La procédure que j'édite sur cette page est adapté au SelfHosting en dehors de l'entreprise ou dans un HomeLab ou CloudLab (pro ou non).
Ces méthodes sont utilisées dans mon infrastructure et sont réfléchies pour le maintien futur de celle-ci :) donc je vous conseille de la suivre pour votre homelab/cloudlab :D !
Ca commence ici...
1️⃣ Préparation de l'Hôte
Si ce n'est pas fait, choisissez entre deux de ces OS et installez le en formatage complet du système, la LVM Debian respecte bien mieux le stockage local mais préférez le mode EXT4/Une partition :
- Debian 12 Amd64 LXDE ou Debian 12 Amd64 Source en s'assurant de ne pas installer Gnome ou KDE-Plasma et installer SSH.
- SparkyLinux 7.3 MinimalGUI
2️⃣ Configuration de l'Hôte
S'assurer que le nom d'hôte est indiqué dans /etc/hosts
tel que :
127.0.0.1 localhost
192.168.100.5 monhotepmx.local
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
- Quand "monhotepmx.local" est le nom d'hôte final de l'hôte PMX.
- Quand "192.168.100.5" est changé par l'IP réel du serveur sur son réseau local.
Vous pouvez ainsi tester avec la commande hostname --ip-address
qui confirme que l'IP locale est reconnue.
3️⃣ Installation de PMX/PVE 8
Installer le Dépôt APT Gratuit (sans licence)
- Executez ces commandes ajoute le dépôt à l'APT (aprés
sudo su -
) :
echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-hypervisor.list
Injecter la clé GPG pour ce dépôt
- Faire cette commande pour injecter la clé GPG de Proxmox dans APT :
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
- Puis faire la commande
apt update
pour mettre à jour l'index.
Mettre à jour le système
- Envoyer la mise à jour de l'OS+Packages :
apt update && apt upgrade -y
Installer le Kernel PVE et Redémarrer
- Installer le Kernel PVE :
apt install proxmox-default-kernel -y
- Redémarrer l'OS :
systemctl reboot
Installer les packages PVE
- Installer les paquets :
apt install proxmox-ve postfix open-iscsi chrony
Cela installe :
- Proxmox VE (Paquet de base avec les dépendances)
- Postfix (Mini serveur de mail), faire
systemctl disable postfix --now
si vous héberger un serveur de mail sur cet hôte ! - Open-ISCSI (Connecteur de cible de stockages)
- Chrony (Gestionnaire Cron, remplace automatiquement CronD)
Nettoyer les Kernel Debian
- Pour éviter des surprises, nous nettoyons les kernels de Debian avec la commande suivante :
apt remove linux-image-amd64 'linux-image-6.1*' -y
- Mettre à jour le Grub :
update-grub
- Retirer OS-Prober (sécurité) :
apt remove os-prober -y
Tester l'installation
- Naviguer sur
https://your-ip-address:8006/
pour tester l'interface web. Le port ne devrais pas être changé. L'exposition web est possible (SchémaHTTPS
, Port8006
) mais devrais être fait qu'aprés avoir renforcer les éléments suivants :
- SSH en mode Clé Privée + Port différencié (si exposé directement).
- Mot de passe renforcé sur
root
+ Avoir un compte de service.
4️⃣ Configurer le réseau virtuel de base
PROXMOX ne gère, par défaut, pas le réseau virtuel local. Sur du SelfHosting, il est préféré d'avoir un (ou plusieurs) réseau(x) local(aux) et d'exposer les applications ou interfaces web cockpit via une gateway NPM (Reverse Proxy) installé sur l'Hôte. Voici comment créer vmbr0
en tant que réseau virtuel NAT interne :
- Naviguer dans
/etc/network
- Copier le fichier
interfaces
versinterfaces.bak
(aveccp
) - Le fichier ressemble d'abord a ceci (ou équivalent) :
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
- Ajouter l'interface virtuelle
vmbr0
initiale (qui porte l'IP principale et fera passer notre premier réseau virtuel NAT)(En changeant les valeurs pour votre réseau local) :
auto vmbr0
iface vmbr0 inet static
address 192.168.100.5/24 # Mettre /30 pour une IP publique de CloudProvider comme OVHCloud par exemple
gateway 192.168.100.1 # Livebox-BBox-SFR : X.X.X.1 / Freebox : X.X.X.254 / CloudProvider : Faire ip a avant et trouver "gateway"
bridge-ports eno1
bridge-stp off
bridge-fd 0
#$ 192.168.100.5 | Commentaire Visible sur PMX
- Créer votre premier réseau virtuel NAT local, l'IP devrais être 10.X.X.X/24, mais il est possible de créer un /16 par exemple. Ici on préfère un /24 (256 IPs) sur
vmbr1
dirigé versvmbr0
:
auto vmbr1
iface vmbr1 inet static
address 10.0.0.1/24
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 '10.0.0.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE
#$ 10.0.0.0/24 | Premier réseau Virtuel NAT
- Activer les réseaux, en fait c'est simple a faire sans reboot, il suffit, dans l'interface web, sur la partie "Networks" ou "Réseaux" de l'Hôte, de modifier le commentaire sur chaque vmbr, puis cocher "auto" sur l'interface principal. Puis faire "Appliquer la configuration" en haut. Cela active
vmbr0
,vmbr1
et filtre l'interface principale.
5️⃣ Configurer le stockage
Ce schéma est conçu pour une installation personnelle, auto hébergé ou cloud hébergé.
le /data
peut être positionné sur un disque externe (non conseillé), interne direct (NVME) ou interne système. Le meilleure montage étant interne direct (disque autonome de 1To par exemple).
Schéma de montage/dossiers
Montage | Usage | Service Concerné |
---|---|---|
/data | Montage principal | Général |
/data/pmx | Dossier de stockage de l'hyperviseur | PMX |
/data/pmx/ct-data | Dossier pour les disques de conténaires CT/LXC | PMX - CT |
/data/pmx/ct-mods | Dossier pour les modèles de conténaires CT/LXC | PMX - CT |
/data/pmx/vm-data | Dossier pour les disques des machines virtuelles | PMX - VM |
/data/pmx/vm-iso | Dossier pour les fichiers ISO | PMX - VM |
/data/pmx/ct-backup | Sauvegarde Locale pour CT | PMX - CT |
/data/pmx/vm-backup | Sauvegarde Locale pour VM | PMX - VM |
/data/store | Dossier des données des CT (voir page dédié pour utiliser ce dossier) | Stockage Données Applis Invités CT-VM |
/data/host | Dossier des données d'applications sur l'hôte si besoin (comme un proxy NPM) | Stockage Données Applis Hôte |
Paramétrage dans PVE
Pour limiter l'usage des stockages a leurs usages réels, il faut définir les type de données autorisés sur chacun des stockages créés dans PVE.
Créer un stockage
Aprés avoir faire Ajouter > Directory :
Dans l'exemple, il s'agit de CT-DATA, ou il faut limiter le stockage a "Conteneur". Cela permet de ne permettre que le stockage des disques des CT. Voici comment configurer tout les stockages du schéma, les 6 stockages :
Stockage | Autorisations |
---|---|
ct-data | Conteneur |
ct-mods | Modèle de conteneur |
ct-backup | VZDump |
vm-data | Image disque |
vm-iso | Image ISO |
vm-backup | Fichier de sauvegarde |