Outils pour utilisateurs

Outils du site


linux:proxmox (lu 77268 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 [26-11-2023 11:19]
edmc73 [Petites commandes à connaitre]
linux:proxmox [28-11-2023 21:01] (Version actuelle)
edmc73 [Cas de figure : une seule adresse ip public + un LAN]
Ligne 30: 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 409: Ligne 440:
  
 Ajouter un répertoire pour le backup (ici /backup) 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.1700993973.txt.gz · Dernière modification: 26-11-2023 11:19 de edmc73