Table des matières
Configuration de l'environnement WSL pour Proxmox
L'installation de Proxmox est faite
- en utilisant la distribution Debian de WSL ;
- en modifiant le fichier %UserProfile%.wslconfig qui définit l'environnement WSL de l'utilisateur. Cela a une incidence sur toutes les distributions mises en oeuvre par l'utilisateur ;
- en modifiant le fichier /etc/wsl.conf spécifique à la distribution Debian utilisée pour installer Proxmox.
Configuration de l'environnement WSL de l'utilisateur
Création / modification du fichier
%UserProfile%\.wslconfig
Paramètre | Valeur par défaut de WSL | Valeur utilisée pour WSL |
---|---|---|
Accès réseau | Mode d'accès réseau est NAT (autres modes réseau : Aucun ; Mirrored ; virtioProxy) | NAT |
cgroups | mode hybride support des cgroups v1 et cgroups v2) | forcer l'utilisation des cgroups v2 |
Mode d'accès réseau NAT
Le fichier de configuration WSL de l'utilisateur (%UserProfile%.wslconfig) doit contenir la ligne suivante dans la section [wsl2] :
[wsl2] networkingMode = NAT
L'hôte Windows dispose d'un nouvelle carte virtuelle qui servira de passerelle aux distributions. Cette carte ressemble à :
PS> ipconfig Carte Ethernet vEthernet (WSL (Hyper-V firewall)) : Suffixe DNS propre à la connexion. . . : Description. . . . . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter Adresse physique . . . . . . . . . . . : 00-15-5D-2C-A1-12 DHCP activé. . . . . . . . . . . . . . : Non Configuration automatique activée. . . : Oui Adresse IPv6 de liaison locale. . . . .: fe80::ce37:51cb:f536:f230%27(préféré) Adresse IPv4. . . . . . . . . . . . . .: 172.28.32.1(préféré) Masque de sous-réseau. . . . . . . . . : 255.255.240.0 Passerelle par défaut. . . . . . . . . :
- La distribution reçoit une adresse IP. Pour connaître l'adresse IP de la distribution Debian depuis l'hôte Windows
PS> wsl -d debian hostname -I
- depuis la distribution WSL, instruction pour connaîter l'adresse IP de l'hôte Windows (passerelle de la distribution)
ip route show | grep -i default | awk '{ print $3}'
- l'accès à une application de la distribution se fait depuis l'hôte Windows avec l'adresse localhost ou de l'adresse IP de la distribution.
Configurer WSL pour utiliser cgroups v2
Les conteneurs LXC de Proxmox utilisent les cgroups. Par défaut, WSL2 fonctionne en mode hybride, c'est-à-dire qu'il prend en charge à la fois les cgroups v1 et les cgroups v2.
Proxmox utilise les cgroups v2 et la configuration par défaut de WSL2 empêche l'utilisation de noVNC pour les conteneurs LXC. Cela affiche le message d'erreur suivant :
Connection failed (Error 500: can't open '/sys/fs/cgroup/blkio//lxc/100/blkio.throttle.io_service_bytes_recursive' - No such file or directory)
Pour forcer WSL2 à passer entièrement aux cgroups v2 (utilisation de noVNC avec les conteneurs LXC ; meilleure intégration avec Systemd ; utilisation des fonctionnalités spécifiques à cgroup v2), il faut modifier le fichier de configuration WSL de l'utilisateur (%UserProfile%.wslconfig) en ajoutant ou en modifiant la ligne suivante dans la section [wsl2] :
[wsl2] kernelCommandLine = systemd.unified_cgroup_hierarchy=1 cgroup_no_v1=all
Configuration de l'environnement de la distribution Debian utilisée pour Proxmox
Modification du fichier /etc/wsl.conf de la distribution Debian :
Paramètre | Valeur par défaut pour la distribution Debian | Valeur utilisée pour la distribution Debian |
---|---|---|
systemd | support de systemd | garder le support de systemd |
nom de l'hôte | l'hôte Proxmox reprend l nom du PC | Donner le nom pve (Proxmox Virtual Environment) à l'hôte Proxmox |
Accès réseau | WSL utilise NAT pour les distributions | garder le mode NAT de WSL |
Adressage IP | WSL modifie l'adresse IP et le serveur DNS à chaque démarrage de la distribution | Désactiver la réécriture de l'adresse IP et du serveur DNS à chaque démarrage de la distribution |
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
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