Table des matières

Guide : installer Proxmox VE dans WSL

Installation de la distribution Debian de WSL avec le nom pve

Lors de l'installation de la distribution Debian, WSL sera installé s'il n'est pas encore configuré dans votre ordinateur Windows.

PS/> wsl --install -d debian --name pve
Installation en cours : Sous-système Windows pour Linux
[=                          3,0%                           ]
Téléchargement : Debian GNU/Linux 
Installation : Debian GNU/Linux 
L’opération demandée est réussie. Les modifications ne seront pas effectives avant que le système ne soit réamorcé.
La distribution a été installée. Il peut être lancé via 'wsl.exe -d pve'
PS/> wsl -l -v
  NAME    STATE           VERSION 
* pve     Stopped         2 

Modifier la configuration de WSL

Créez puis modifiez le fichier de configuration WSL de votre compte utilisateur Windows (%UserProfile%\.wslconfig) pour :

Utilisez l’éditeur en ligne de commande nano pour modifier le contenu des fichiers.

Le fichier .wslconfig doit contenir dans la section [wsl2] avec les deux lignes suivantes:

.wslconfig
[wsl2]
networkingMode =  NAT
kernelCommandLine = systemd.unified_cgroup_hierarchy=1 cgroup_no_v1=all

Configurer la distribution pve

wsl -d pve
# Passer en root
$ sudo -i
 
# Définir le mot de passe du compte root nécessaire pour s'authentifier dans l'interface Web d'administration de Proxmox.
passwd
 
# Vérifier la version de Debian pour connaître quelle version récente de Proxmox est installable
# cat /etc/os-release
# VERSION="12 (bookworm)"
Se rendre à l'URL du Wiki de PVE (https://pve.proxmox.com/wiki/FAQ#faq-support-table) et prenez connaissance de la version à installer. Pour Debian 12 c'est PVE 8.x.

Vérifier l'activation de systemd (cela est fait défaut)

Vérifiez dans le fichier /etc/wsl.conf la présence de la ligne suivante dans la rubrique boot:

# cat /etc/wsl.conf
[boot]
systemd=true

Configuration réseau

Important : une configuration incorrecte de la configuration IP de la distribution ne permettra pas d'accéder à l'interface Web de Proxmox

wsl.conf
[boot]
systemd=true
 
[network]
hostname = pve
generateHosts = false
generateResolvConf = false

Modification manuelle du fichier /etc/hosts (une modification automatique sera ensuite configurée)

# ip a
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:23:ef:de brd ff:ff:ff:ff:ff:ff
    inet 172.28.38.112/20 brd 172.28.47.255 scope global eth0
127.0.0.1            localhost
#127.0.0.1           PC-perso.    PC-perso
172.28.38.112        pve          pve

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Modification automatique du fichier /etc/hosts

pvepreup.sh
#!/bin/bash
 
ip4addr=`ip -4 a show eth0 | awk '/inet .* scope global/ {split($2,out,"/");print out[1]}'`
 
awk "/^127\.0\.0\.1.*`hostname`/ {next} /`hostname`/ {\$1 = \"$ip4addr\"} // {print}" /etc/hosts > /etc/hosts.new && mv /etc/hosts.new /etc/hosts
pvepreup.service
[Unit]
Description=Fix /etc/hosts before starting PVE
Before=pve-cluster.service
After=network.target
DefaultDependencies=no
Before=shutdown.target
Conflicts=shutdown.target
 
[Service]
ExecStart=/usr/local/bin/pvepreup.sh
KillMode=mixed
TimeoutStopSec=10
Type=oneshot
 
[Install]
WantedBy=multi-user.target
chmod +x /usr/local/bin/pvepreup.sh
systemctl daemon-reload
systemctl enable pvepreup
systemctl status pvepreup

Tests

# exit                      # fermer la session root
$ exit                      # fermer la session sio
PS> wsl --shutdown          # arrêter la distribution
PS> wsl -d pve --user root  # démarrer la distribution et ouvrir une session avec le compte root

La mise à jour automatique du fichier /etc/resolv.conf ayant été désactivée dans WSL (generateResolvConf = false dans le fichier /etc/wsl.conf), il est nécessaire de créer ce fichier /etc/resolv.conf pour indiquer l'adresse IP du serveur DNS de votre choix.

nameserver 8.8.8.8
# hostname
pve

# hostname --ip-address
172.28.38.112 

Installer les prérequis

apt update && apt upgrade -y
apt install -y apt-transport-https python3-requests lsb-release
echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
apt install -y wget

wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

# verifier la clé
sha512sum /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg 
7da6fe34168adc6e479327ba517796d4702fa2f8b4f0a9833f5ea6e6b48f6507a6da403a274fe201595edc86a84463d50383d07f64bdde2e3658108db7d6dc87  /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg 

Mettre à jour le référentiel et le système

apt update && apt full-upgrade

Installer le noyau Proxmox VE

apt install -y proxmox-default-kernel
systemctl reboot
PS> wsl -d pve --user root

Installer et configurer de Postfix

L'installation et la configuration de Postfix est nécessaire pour pouvoir ensuite installer Proxmox :

apt install postfix -y
systemctl restart postfix

Installer Proxmox VE

apt install -y proxmox-ve  open-iscsi chrony
apt remove -y os-prober

Permettre l'utilisation des conteneurs LXC

Proxmox détecte qu'il est virtualisé et ne permet pas la création de conteneurs LXC.

Pour le permettre, modifiez la condition suivante dans le fichier /lib/systemd/system/lxcfs.service

[Unit]
ConditionVirtualization=!container
[Unit]
ConditionVirtualization=container

Vérifiez que tout fonctionne

Redémarrez la distribution pve et connectez-vous avec le compte root depuis PowerShell:

# exit                      # fermer la session
PS> wsl --shutdown          # arrêter la distribution
PS> wsl -d pve --user root  # démarrer la distribution et ouvrir une session avec le compte root

Proxmox devrait fonctionner. L’interface utilisateur Web est accessible à l’adresse https://localhost:8006.

Pour un accès en SSH, déposez votre clé publique dans /root/.ssh/authorized_keys.

L'adresse IP de la distribution pve est dans le plan d'adressage 172.28.32.0/20 de WSL en mode réseau NAT.

Exemple :

# ip a
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:a5:6c:be brd ff:ff:ff:ff:ff:ff
    inet 172.28.38.112/20 brd 172.28.47.255 scope global eth0

Debogage

Exemple avec l'adresse IP de la distribution qui serait 172.28.38.112/20 :

172.28.38.112        pve      pve
nameserver 8.8.8.8
# log
journalctl -xe

# les services
systemctl status pve-cluster 

Exporter / importer / renommer la distribution pve

wsl --export pve C:\chemin\vers\pve.tar
wsl --unregister pve
wsl --import nouveaupve C:\nouvel\emplacement C:\chemin\vers\pve.tar

Retour accueil Installer Proxmox avec WSL