====== 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.
* installer la distribution Debian en la renommant **pve** depuis l'invite de commande cmd ou Powershell :
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'
* Un redémarrage de Windows est nécessaire s'il s'agit de la première installation de WSL.
* Vérifiez la présence de la distribution pve (la distribution est installée mais stoppée) :
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 :
* définir le mode réseau de WSL en NAT (configuration par défaut) ;
* **forcer WSL2** à passer entièrement aux **cgroups v2**
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:
[wsl2]
networkingMode = NAT
kernelCommandLine = systemd.unified_cgroup_hierarchy=1 cgroup_no_v1=all
===== Configurer la distribution pve =====
* Démarrez la distribution pve.
wsl -d pve
* Lors du premier lancement de la distribution, vous devez créer un compte utilisateur et son mot de passe :
* créez le compte utilisateur sio ;
* avec le mot de passe Sio1234*
* Passez **root** pour changer le mot de passe de ce compte car il devra être utilisé pour se connecter à l'interface d'administration de Proxmox VE.
# 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
* Configurer WSL2 :
* pour ne pas réécrire le fichier **/etc/hosts** ainsi que le fichier **/etc/resolv.conf** à chaque démarrage de la distribution, ajoutez les lignes ci-dessous au fichier **/etc/wsl.conf** de la distribution pve en créant une rubrique [network] ;
* pour personnalisez également le nom de la distribution afin de l'appeler **pve** en mettant à jour le fichier **/etc/hosts**.
Voici le contenu actualisé du fichier **/etc/wsl.conf** qui contient déjà une section [boot] pour activer **systemd** :
[boot]
systemd=true
[network]
hostname = pve
generateHosts = false
generateResolvConf = false
=== Modification manuelle du fichier /etc/hosts (une modification automatique sera ensuite configurée)===
* prenez connaissance de l'adresse IP de la distribution (pour exemple 172.28.38.112/20) :
# ip a
2: eth0: 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
* mettre à jour le fichier **/etc/hosts** en ajoutant une entrée pour votre adresse IP de votre distribution pve 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 PC Windows se nomme PC-perso avec l'adresse IP de la distribution **172.28.38.112/20**, pour utiliser le nom **pve**, votre fichier **/etc/hosts** pourrait ressembler à :
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 ===
* Création du fichier **/usr/local/bin/pvepreup.sh** avec le contenu suivant :
#!/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
* création du fichier **/etc/systemd/system/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
* activez le service
chmod +x /usr/local/bin/pvepreup.sh
systemctl daemon-reload
systemctl enable pvepreup
systemctl status pvepreup
=== Tests ===
* Tout d'abord, depuis Powershell, arrêtez et redémarrez la distribution pve en ouvrant une session directement avec le compte root.
# 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.
* Créez le fichier **/etc/resolv.conf** pour indiquer l'adresse IP du serveur de nom de votre choix
nameserver 8.8.8.8
* Testez si votre configuration est correcte à l’aide de la commande hostname (l'adresse IP doit être celle de votre distribution pve) :
# 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
* Ajoutez le dépôt de Proxmox VE
echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
* Ajoutez la clé du dépôt de Proxmox VE :
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
* ouvrez à nouveau une session dans la distribution pve avec le compte root :
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 :
* installation de Postfix ;
* choisissez comme configuration **Local only** ;
* gardez le nom de domaine **pve** proposé.
apt install postfix -y
systemctl restart postfix
===== Installer Proxmox VE =====
* Lancez l'installation de Proxmox VE :
apt install -y proxmox-ve open-iscsi chrony
* Il est recommandéde supprimer le paquet logiciel **os-prober** quand le dual-boot n'est pas géré :
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**
* remplacez
[Unit]
ConditionVirtualization=!container
* par
[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: 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 =====
* Vérifiez la présence de la ligne suivante dans le fichier **/etc/hosts** de la distribution **pve** afin d'avoir une entrée pour l'adresse IP de la distribution associée au nom **pve**.
Exemple avec l'adresse IP de la distribution qui serait 172.28.38.112/20 :
172.28.38.112 pve pve
* Vérifiez que le fichier **/etc/resolv.conf** contient une ligne pour indiquer l'adresse IP du serveur de nom de (DNS) votre choix
nameserver 8.8.8.8
* Consultez les logs :
# log
journalctl -xe
# les services
systemctl status pve-cluster
===== Exporter / importer / renommer la distribution pve =====
* Exporter la distribution
wsl --export pve C:\chemin\vers\pve.tar
* Désenregistrer l'ancienne distribution :
wsl --unregister pve
* Importer la distribution avec un nouveau nom :
wsl --import nouveaupve C:\nouvel\emplacement C:\chemin\vers\pve.tar
**************************
====== Retour accueil Installer Proxmox avec WSL ======
* [[reseau:cloud:proxmox:installwsl|Installer Proxmox avec WSL]]