====== 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]]