Outils pour utilisateurs

Outils du site


linux:proxmox (lu 77261 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
linux:proxmox [15-01-2021 13:28]
edmc73 [Configuration]
linux:proxmox [28-11-2023 21:01] (Version actuelle)
edmc73 [Cas de figure : une seule adresse ip public + un LAN]
Ligne 1: Ligne 1:
 ====== Proxmox ====== ====== Proxmox ======
 +
  
 ===== Doc ===== ===== Doc =====
Ligne 5: Ligne 6:
 Bel article sur proxmox 5 => https://community.capensis.org/t/nouveautes-installation-et-configuration-de-proxmox-5-2/133 Bel article sur proxmox 5 => https://community.capensis.org/t/nouveautes-installation-et-configuration-de-proxmox-5-2/133
  
 +===== Petites commandes à connaitre =====
 +
 +Pour supprimer la config ceph si vous l'avez activé par inadvertance
 +  pveceph purge
 +
 +Pour tester la migration de 6 vers 7
 +  pve6to7
 +  pve6to7 --full
  
 ===== Définition (vieille version) ===== ===== Définition (vieille version) =====
Ligne 21: Ligne 30:
  
 ===== Configuration ===== ===== Configuration =====
-==== Cas de figure : une seule adresse ip + un LAN ==== +==== Cas de figure : une seule adresse ip public + un LAN ====
-On rajouter pour l'instant une petite règle de firewall +
-  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o vmbr0 -j SNAT --to 70.70.70.70 +
-   +
-Cela permet à votre réseau virtuel en 192.168.0.0 d'avoir accès à internet via votre serveur 70.70.70.70+
  
-Pour un accès ssh de votre VM, vous devez utiliser un autre port que le 22 qui est déja utilisé par votre serveur principal.\\ +Par défaut, vous avez un bridge vmbr0 connecté sur votre interface réseau physique avec votre adresse publique
-Exemple pour le port 2222 qui sera redirigé sur le port 22 de votre VM 192.168.0.1\\ +
-On déclare tout d'abord une règle permettant de faire du NAT sur notre réseau local virtuelle 192.168.0.0/24 +
-  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o vmbr0 -j SNAT --to-source 70.70.70.70 +
-   +
-Ensuite on redirige le port 2222 +
-  iptables -t nat -A PREROUTING -d 70.70.70.70 -p tcp --dport 2222 -j DNAT --to-dest 192.168.0.1:22+
  
-//(a venir, une config plus sécurisé du firewall...)//+<code> 
 +Name: vmbr0 
 +IPv4/CIDR : 94.94.94.94/24 
 +Gateway (IPv4) : 94.94.94.254 
 +Bridge ports: eno1 
 +</code>
  
-Je désactive l'ecoute sur le port 80 du serveur principal pour laisser libre ce port pour les autres machines.\\ +Créons un bridge qui définira notre réseau local
-L'interface reste toujours accessible sur le port 443 via https://...+
  
-Pour celamodifiez le fichier /etc/apache2/ports.conf et commentez la ligne Listen 80+<code> 
 +Name: vmbr1 
 +IPv4/CIDR : 192.168.0.1/24 
 +Gateway (IPv4) : (vide) 
 +Bridge ports: (vide) 
 +</code> 
 + 
 +On crée maintenant une VM avec les infos suivantes 
 +<code> 
 +Name: eth0 
 +Bridge: vmbr1 
 +IPv4 : Static 
 +IPv4/CIDR : 192.168.0.2/32 
 +Gateway (IPv4) : 192.168.0.1 
 +</code> 
 + 
 +Maintenantil faut dire au système que l'on veut faire de l'ip forwarding 
 +  echo 1 > /proc/sys/net/ipv4/ip_forward 
 + 
 +Ensuite il suffit juste de rajouter une règle iptable pour router notre réseau local vers le bridge qui a accès au WAN 
 + 
 +  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o vmbr0 -j MASQUERADE 
 + 
 +Vous pouvez automatiser tout ça dans votre fichier **/etc/network/interface** 
 + 
 +<code> 
 +auto vmbr1 
 +iface vmbr1 inet static 
 +        address 192.168.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 192.168.0.0/24 -o vmbr0 -j MASQUERADE 
 +        post-up /root/dnat.sh 
 +        post-down iptables -t nat -D POSTROUTING -s 192.168.0.0/24 -o vmbr0 -j MASQUERADE 
 +</code> 
 + 
 +Le fichier /root/dnat.sh pourra contenir des règles de NAT pour accéder à la machine depuis l'extérieur 
 + 
 +Pour un accès ssh de votre VM, vous devez utiliser un autre port que le 22 qui est déja utilisé par votre serveur principal.\\ 
 +Exemple pour le port 2222 qui sera redirigé sur le port 22 de votre VM 192.168.0.2 
 +  iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 2222 -j DNAT --to-destination 192.168.0.2:22
  
-Rédémarrez apache 
  
-Installons maintenant **pound** qui permet le reverse-proxy et load-balancer 
-  aptitude install pound 
  
-[[linux:pound|Voir plus de détails sur Pound]] 
-   
 ==== Cas de figure : Une adresse ip WAN pour chaque VM ==== ==== Cas de figure : Une adresse ip WAN pour chaque VM ====
  
Ligne 322: Ligne 362:
   * /dev/sda1 20 Go (/)   * /dev/sda1 20 Go (/)
   * /dev/sda2 4096 Go (swap)   * /dev/sda2 4096 Go (swap)
-  * /dev/sda3 reste de l'espace disque (lvm) /var/lib/vz+  * /dev/sda3 500 Go (lvm) /var/lib/vz 
 +  * /dev/sda4 1.4To (lvm) /backup 
 + 
 +laisser un peu d'espace disque pour LVM, sinon, je ne sais pas pourquoi mais ça bug..
  
 {{ :linux:proxmox6_partitionnement.jpg |}} {{ :linux:proxmox6_partitionnement.jpg |}}
Ligne 340: Ligne 383:
  
 Redémarrez et supprimez ensuite les anciens kernel en 4.xx Redémarrez et supprimez ensuite les anciens kernel en 4.xx
 +
 +Convertissez votre partition en lvm-thin
 +
 +<code>
 +
 +// pour cela, on le supprime
 +root@proxmox6:/# umount /var/lib/vz
 +root@proxmox6:/# lvremove vg/vz
 +Do you really want to remove active logical volume vg/vz? [y/n]: y
 +  Logical volume "vz" successfully removed
 +
 +// on le recrée avec 99% de l'espace dispo pour lui laisser 1% pour faire son business..
 +root@proxmox6:/# lvcreate -l +99%FREE -n data vg
 +WARNING: ext4 signature detected on /dev/vg/data at offset 1080. Wipe it? [y/n]: y
 +  Wiping ext4 signature on /dev/vg/data.
 +  Logical volume "data" created.
 +root@proxmox6:/# lvconvert --type thin-pool vg/data
 +  Thin pool volume with chunk size 256.00 KiB can address at most 63.25 TiB of data.
 +  WARNING: Converting vg/data to thin pool's data volume with metadata wiping.
 +  THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.)
 +Do you really want to convert vg/data? [y/n]: y
 +  Converted vg/data to thin pool.
 +
 +// on modifie le fstab pour pas monter le volume thin-pool
 +UUID=21bf4e05-83a4-452d-a927-093e5b1ea506       /       ext4    defaults        0       1
 +UUID=822a0a6d-46fb-45de-bd8d-3eb386323977       /backup ext4    defaults        0       0
 +#UUID=74d12ded-edf6-42be-9c75-b6784909c283      /var/lib/vz     ext4    defaults        0       0
 +UUID=18245d31-414d-4339-b13d-70b730fc109f       swap    swap    defaults        0       0
 +UUID=2d1cff2c-f4a0-4455-a694-b2e06191aa71       swap    swap    defaults        0       0
 +UUID=3c2be4e9-eec4-49aa-8148-121f6151c3aa       swap    swap    defaults        0       0
 +
 +</code>
  
 On se retrouve ensuite avec un proxmox 6 tout neuf. L'espace disque total utilisé est de 2.7Go On se retrouve ensuite avec un proxmox 6 tout neuf. L'espace disque total utilisé est de 2.7Go
Ligne 355: Ligne 430:
  
 Toujours dans Système, Certificats permet d'ajouter un certificat ssl pour votre https. Ca reste assez intuitif Toujours dans Système, Certificats permet d'ajouter un certificat ssl pour votre https. Ca reste assez intuitif
 +
 +Dans la partie Disques / LVM nous devrions retrouver nos 2 groupes vg et vg1
 +
 +Allons dans LVM-Thin ou nous devons retrouver data
  
 Cliquez sur Datacenter puis Stockage. Cliquez sur Datacenter puis Stockage.
  
-Ajouter un répertoire de backup+Ajouter un LVM-thin avec un nom, le volume groupe (vg) le pool data devrait apparaitre et ce stockage stockera uniquement les image disques et conteneurs. 
 + 
 +Ajouter un répertoire pour le backup (ici /backup) 
 + 
 +===== upgrade 6 to 7 ===== 
 + 
 +Après avoir checké avec la commande 
 +  pve6to7 
 + 
 +Suivre la procédure sur https://pve.proxmox.com/wiki/Upgrade_from_6.x_to_7.0 
 + 
 +  sed -i 's/buster\/updates/bullseye-security/g;s/buster/bullseye/g' /etc/apt/sources.list 
 +  sed -i -e 's/buster/bullseye/g' /etc/apt/sources.list.d/pve-install-repo.list 
 +  apt update 
 +  apt dist-upgrade 
 + 
 +Ensuite, je n'avais pas fait attention à ça 
 + 
 +<code> 
 +update-initramfs: Generating /boot/initrd.img-5.15.131-1-pve 
 + 
 +gzip: stdout: No space left on device 
 +E: mkinitramfs failure gzip 1 
 +update-initramfs: failed for /boot/initrd.img-5.15.131-1-pve with 1. 
 +run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1 
 +Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/pve-kernel-5.15.131-1-pve.postinst line 19. 
 +dpkg: error processing package pve-kernel-5.15.131-1-pve (--configure): 
 + installed pve-kernel-5.15.131-1-pve package post-installation script subprocess returned error exit status 2 
 +Setting up libboost-iostreams1.74.0:amd64 (1.74.0-9) ... 
 +Setting up libsigc++-2.0-0v5:amd64 (2.10.4-2) ... 
 +Setting up aptitude-common (0.8.13-3) ... 
 +dpkg: dependency problems prevent configuration of pve-kernel-5.15: 
 + pve-kernel-5.15 depends on pve-kernel-5.15.131-1-pve; however: 
 +  Package pve-kernel-5.15.131-1-pve is not configured yet. 
 + 
 +dpkg: error processing package pve-kernel-5.15 (--configure): 
 + dependency problems - leaving unconfigured 
 +dpkg: dependency problems prevent configuration of proxmox-ve: 
 + proxmox-ve depends on pve-kernel-5.15; however: 
 +  Package pve-kernel-5.15 is not configured yet. 
 + 
 +dpkg: error processing package proxmox-ve (--configure): 
 + dependency problems - leaving unconfigured 
 +Setting up libcwidget4:amd64 (0.5.18-5) ... 
 +Setting up aptitude (0.8.13-3) ... 
 +update-alternatives: using /usr/bin/aptitude-curses to provide /usr/bin/aptitude (aptitude) in auto mode 
 +Processing triggers for man-db (2.9.4-2) ... 
 +Processing triggers for libc-bin (2.31-13+deb11u7) ... 
 +Errors were encountered while processing: 
 + pve-kernel-5.15.131-1-pve 
 + pve-kernel-5.15 
 + proxmox-ve 
 +E: Sub-process /usr/bin/dpkg returned an error code (1) 
 + 
 +</code> 
 + 
 +et le reboot s'est mal passé... 
 + 
 +Obligé de rebooter sur un live rescue 
 +<code> 
 +mount /dev/mapper/system--mdjrx-root /mnt 
 +mount /dev/sda1 /mnt/boot 
 +for name in proc sys dev ; do mount --bind /$name /mnt/$name; done 
 + 
 +chroot /mnt 
 +</code> 
 + 
 +relancer les commandes apt dist-upgrade et constater que rien ne fonctionne... 
 + 
 +Finalement, ce qui a fonctionner 
 +<code> 
 +umount /boot 
 +fsck.ext4 -p -c -f /dev/sda1 
 +/dev/sda1: Updating bad block inode. 
 +/dev/sda1: 362/51000 files (1.4% non-contiguous), 152848/203776 blocks 
 + 
 +apt dist-upgrade 
 +run-parts: executing /etc/kernel/postinst.d/zz-update-grub 5.15.131-1-pve /boot/vmlinuz-5.15.131-1-pve 
 +Setting up pve-kernel-5.15 (7.4-8) ... 
 +Setting up proxmox-ve (7.4-1) ... 
 + 
 +</code> 
 + 
 +Plus d'erreurs. 
 + 
 +Après un reboot, j'ai eu droit à ça 
 +  Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) 
 + 
 +donc reboot sur un ancien kernel et 
 +<code> 
 +update-initramfs -u -k 5.15.131-1-pve  
 + 
 +update-initramfs: Generating /boot/initrd.img-5.15.131-1-pve 
 +gzip: stdout: No space left on device 
 +E: mkinitramfs failure gzip 1 
 +update-initramfs: failed for /boot/initrd.img-5.15.131-1-pve with 1. 
 + 
 + 
 +df -h /boot 
 +Filesystem      Size  Used Avail Use% Mounted on 
 +/dev/sda1       188M  138M   36M  80% /boot 
 +</code> 
 +il n'y a donc pas assez d'espace sur la partition de /boot  
 + 
 +Faisons le ménage en cherchant avec grub les kernel installé 
 +  dpkg --list | grep kernel 
 + 
 +en supprimant les paquets obsolètes 
 +  apt purge nom_du_paquet 
 + 
 +et en supprimant à la main les fichiers resté dans /boot de la même version supprimé 
 + 
 +On relance ensuite les 2 commandes qui vont bien 
 +<code> 
 +oot@proxmox202009:/boot# update-initramfs -u -k 5.15.131-1-pve  
 +update-initramfs: Generating /boot/initrd.img-5.15.131-1-pve 
 +Running hook script 'zz-proxmox-boot'.. 
 +Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace.. 
 +No /etc/kernel/proxmox-boot-uuids found, skipping ESP sync. 
 +root@proxmox202009:/boot# df -h /boot 
 +Filesystem      Size  Used Avail Use% Mounted on 
 +/dev/sda1       188M  134M   41M  77% /boot 
 + 
 +root@proxmox202009:/boot# update-grub 
 +Generating grub configuration file ... 
 +Found linux image: /boot/vmlinuz-5.15.131-1-pve 
 +Found initrd image: /boot/initrd.img-5.15.131-1-pve 
 +Found linux image: /boot/vmlinuz-5.4.203-1-pve 
 +Found initrd image: /boot/initrd.img-5.4.203-1-pve 
 +Warning: os-prober will not be executed to detect other bootable partitions. 
 +Systems on them will not be added to the GRUB boot configuration. 
 +Check GRUB_DISABLE_OS_PROBER documentation entry. 
 +done 
 +</code> 
 + 
 +On reboot. Et là... encore un problème. Le système boot bien, tout fonctionne sauf l'accès à internet. 
 + 
 +Et oui il était écrit en petit dans la doc ( https://pve.proxmox.com/wiki/Upgrade_from_6.x_to_7.0#Check_Linux_Network_Bridge_MAC ) que debian 11 allait changer tout seul l'adresse MAC du bridge et comme le bridge communique avec l'hebergeur via l'adresse MAC, ben ça ne fonctionne pas. 
 + 
 +donc, faire un  
 +  ip -c link 
 +pour récupérer l'adresse mac de votre interface réseau (ou la récupérer dans votre interface admin de votre hébergeur) 
 +et rajouter dans le **/etc/network/interfaces** la ligne 
 +  hwaddress 00:00:00:00:00 
 +on restart le réseau 
 +  systemctl restart networking 
 + 
 +Et ça marche !! (enfin l'hyperviseur, pour les LXC y'a encore du boulot) 
 + 
 +Et ça fait plaisir de voir que je ne suis pas le seul à avoir eu des problèmes -> https://blog.zwindler.fr/2021/07/19/les-soucis-que-jai-rencontre-en-upgradant-proxmox-ve-7/
linux/proxmox.1610713692.txt.gz · Dernière modification: 15-01-2021 13:28 de edmc73