Installer Proxmox avec WSL

Ressources

https://github.com/gaudat/gauup/blob/master/homelab/pve-wsl2.md

https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_12_Bookworm

https://kimmo.suominen.com/blog/2019/12/regenerating-proxmox-certificates/

https://boxofcables.dev/kvm-optimized-custom-kernel-wsl2-2022/

https://www.linuxtricks.fr/wiki/wiki.php?title=proxmox-faire-fonctionner-wsl-dans-windows-11

https://github.com/ehlesp/smallab-k8s-pve-guide/discussions/13

https://learn.microsoft.com/fr-fr/windows/wsl/wsl-config

https://learn.microsoft.com/fr-fr/windows/wsl/networking

https://learn.microsoft.com/fr-fr/windows/wsl/systemd

https://ubuntu.com/blog/ubuntu-wsl-enable-systemd

https://www.ceos3c.com/linux/wsl2-network-configuration-settings/

Sommaire

Configuration de l'environnement WSL pour Proxmox

Installation de Proxmox avec WSL

Utiliser les pilotes VirtIO

Créer un bridge dans Proxmox

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

WSL prend en charge le gestionnaire de système/service systemd depuis la version 0.67.6+

Pour activer systemd, modifier le fichier /etc/wsl.conf de la distribution avec les droits root, pour ajoutez ces lignes :

[boot]
systemd=true

Fermez ensuite la distribution WSL (wsl.exe –shutdown depuis PowerShell), et redémarrez l'instance WSL.

systemd doit maintenant être en cours d’exécution et cela se vérifie à l’aide de la commande suivante qui affiche l’état des services. :

systemctl list-unit-files --type=service

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

apt update && apt full-upgrade

Installer le noyau Proxmox VE

apt install proxmox-default-kernel
systemctl reboot

Exportez la VM

Faire une sauvegarde de la VM depuis PowerShell:

wsl --shutdown
wsl --export Debian pve-checkpoint.tar
wsl

Installer et configurer de Postfix

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

installation de Postfix

apt install postfix

Installer Proxmox

Lancer l'installation depuis un shell root

sudo -i
#apt install proxmox-ve --no-install-recommends
apt install proxmox-ve open-iscsi chrony

If you have a mail server in your network, you should configure postfix as a satellite system. Your existing mail server will then be the relay host which will route the emails sent by Proxmox VE to their final recipient. If you don't know what to enter here, choose local only and leave the system name as is.

Remove the Debian Kernel Proxmox VE ships its own kernel and keeping the Debian default kernel can lead to trouble on upgrades, for example, with Debian point releases. Therefore, you must remove the default Debian kernel:

apt remove linux-image-amd64 'linux-image-6.1*'

Update and check grub2 config by running:

update-grub

Recommended: Remove the os-prober Package The os-prober package scans all the partitions of your host to create dual-boot GRUB entries. But the scanned partitions can also include those assigned to virtual machines, which one doesn't want to add as boot entry.

If you didn't install Proxmox VE as dual boot beside another OS, you can safely remove the os-prober package:

apt remove os-prober

Permettre l'utilisation des conteneurs LXC

Proxmox détecte s'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

remplacez

[Unit]
ConditionVirtualization=!container

par

[Unit]
ConditionVirtualization=container

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

Configurer WSL2 :

pour ne pas réécrire le fichier /etc/hosts ainsi que le fichier /etc/resolv.conf à chaque démarrage de la distribution, en ajoutant ces lignes au fichier /etc/wsl.conf de la VM Debian avec la création d'une rubrique [network].

pour personnaliser le nom de la distribution afin de l'appeler pve (Proxmox Virtual Environment). Il sera nécessaire de mettre à jour le fichier /etc/hosts en conséqudnce (voir plus loin dans le document).

Le fichier /etc/wsl.confcontient déjà une section [boot] pour activer systemd :

[network]
hostname = pve
generateHosts = false
generateResolvConf = false

modifier ou créez le fichier /etc/resolv.conf pour indiquer l'adresse IP du serveur de nom de votre choix

nameserver 8.8.8.8

prenez connaissance de l'adresse IP de la distribution (ici 192.168.165.155/20) :

# ip a
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:71:da:df brd ff:ff:ff:ff:ff:ff
inet 192.168.165.155/20 brd 192.168.175.255 scope global eth0

mettre à jour le fichier /etc/hosts en ajoutant une entrée pour votre adresse IP du poste car le nom d’hôte de votre machine doit pouvoir être résolu via /etc/hosts. Pour cela il faut remplacer l’adresse 127.0.1.1 présente par défaut par l'adresse IP de votre distribution. Par exemple, si votre adresse IP de la distribution est 192.168.165.155/20 et pour utiliser le nom pve, votre fichier /etc/hosts pourrait ressembler à :

127.0.0.1 localhost
#127.0.0.1 PC-perso. PC-perso
192.168.165.155 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

tester si votre configuration est correcte à l’aide de la commande hostname :

# hostname
pve
# hostname --ip-address
192.168.165.155 # should return your IP address here

Utiliser les pilotes VirtIO

Les pilotes VirtIO sont des pilotes paravirtualisés pour kvm/Linux. En bref, ils permettent un accès direct (paravirtualisé) aux périphériques et aux périphériques pour les machines virtuelles qui les utilisent, au lieu de machines plus lentes et émulées. Pour en savoir plus :

http://www.linux-kvm.org/page/Virtio

http://www.ibm.com/developerworks/library/l-virtio

Prise en charge du système d’exploitation Windows

Windows n’a pas de support natif pour les appareils VirtIO inclus. Il existe un support externe via des pilotes opensource, disponibles, compilés et signés numériquement par Red Hat pour Windows :

https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/?C=M;O=D

Créer un bridge dans Proxmox

L’adresse IP eth0 de la distribution WSL est configurée par WSL. Il n'est pas possible de faire le lien entre un invité (conteneur LXC ou VM de PRoxmox) et eth0. Un premier bridge doit alors être créé.

https://pve.proxmox.com/wiki/Network_Configuration#_default_configuration_using_a_bridge

modifier le fichier /etc/network/interfaces pour créer un bridge vmbr0 avec du NAT pour les conteneurs LXC et les VM que vous allez créer dans Proxmox.

Choisissez la plan d'adressage de votre choix. Ici 172.16.0.0./16.

Ne modifiez pas la configuration pour eth0

iface eth0 inet manual
auto vmbr0
iface vmbr0 inet static
address 172.16.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 '172.16.0.0/16' -o eth0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '172.16.0.0/16' -o eth0 -j MASQUERADE
source /etc/network/interfaces.d/*

Verify everything is working

Reboot or start the WSL from PowerShell:

wsl --shutdown # If you need to reboot
wsl

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

For SSH access, drop your public key to /root/.ssh/authorized_keys. This is symlinked to another file by Proxmox.

Debugger

# log
journalctl -xe
# les services
systemctl status pve-cluster