Outils pour utilisateurs

Outils du site


linux:proxmox (lu 77289 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 [10-07-2019 10:51]
edmc73 [Définition]
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 288: Ligne 328:
   pct console 101   pct console 101
  
 +====== Proxmox 5 ======
 +
 +===== sur une VM non LXC, c'est lent =====
 +
 +Par exemple, j'ouvre aptitude, ça met 4 plombe, je lance un truc nodejs, ca met 8 plombe.
 +
 +Par magie, en désactivant le SWAP, on retrouve la rapidité normal du système.
 +
 +  sudo swapoff -a
 +
 +===== cluster =====
 +J'ai voulu test en créant un cluster puis en m'apercevant que fallait monter un vpn entre 2 proxmox.. bref. Mais que vois-je ? pas de bouton pour supprimer le cluster !!
 +
 +Heureusement, voici les commandes
 +
 +  systemctl stop pve-cluster
 +  systemctl stop corosync
 +  pmxcfs -l
 +  rm /etc/pve/corosync.conf
 +  rm /etc/corosync/*
 +  killall pmxcfs
 +  systemctl start pve-cluster
 +  
 +
 +====== Proxmox 6 ======
 +
 +===== Installation =====
 +
 +Bizarrement, proxmox n'est plus disponible dans les os pré-installé de soyoustart, je vais devoir l'installer à la main sur une Debian 10
 +
 +Au préalable, il va falloir bien partitionner son serveur en n'oubliant pas LVM
 +
 +  * /dev/sda1 20 Go (/)
 +  * /dev/sda2 4096 Go (swap)
 +  * /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 |}}
 +
 +Ensuite il faut suivre le tuto officiel => https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Buster
 +
 +Petite particularité soyoustart, il y a un cloud config à modifier pour ne pas qu'il écrase le fichier /etc/hosts à chaque reboot
 +
 +  vi /etc/cloud/cloud.cfg
 +
 +Commenter la ligne suivante dans le **cloud_init_modules**
 +  # - update_etc_hosts
 +et modifiez la ligne suivante à la fin du fichier
 +  manage_etc_hosts: True
 +en
 +  manage_etc_hosts: False
 +
 +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
 +
 +===== Configuration =====
 +Maintenant que tout est installé, il va falloir configurer 2, 3 trucs dans l'interface web.
 +
 +
 +Sélectionnez votre serveur proxmox puis allez dans Système / Réseau
 +
 +Créer un "Linux Bridge" vmbr0 en saisissant votre ip (commande ip a pour la connaitre) votre passerelle (commande route -n pour la connaitre) et le ports du bridge qui est votre carte réseau (eno1 par exemple)
 +
 +Ensuite, redémarrez votre proxmox.
 +
 +
 +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.
 +
 +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.1562748701.txt.gz · Dernière modification: 10-07-2019 10:51 de edmc73