Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
linux:proxmox [10-09-2017 17:57] edmc73 [Bug] |
linux:proxmox [28-11-2023 21:01] edmc73 [Cas de figure : une seule adresse ip public + un LAN] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Proxmox ====== | ====== Proxmox ====== | ||
- | ===== Définition ===== | + | |
+ | ===== Doc ===== | ||
+ | |||
+ | Bel article sur proxmox 5 => https:// | ||
+ | |||
+ | ===== 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 | ||
Proxmox est une distribution linux sous debian lenny qui intègre les outils openvz ( http:// | Proxmox est une distribution linux sous debian lenny qui intègre les outils openvz ( http:// | ||
Ligne 16: | Ligne 30: | ||
===== Configuration ===== | ===== Configuration ===== | ||
- | ==== Cas de figure : une seule adresse ip + un LAN ==== | + | ==== Cas de figure : une seule adresse ip public |
- | On rajouter pour l' | + | |
- | iptables -t nat -A POSTROUTING -s 192.168.0.0/ | + | |
- | + | ||
- | Cela permet à votre réseau virtuel en 192.168.0.0 d' | + | |
- | Pour un accès ssh de votre VM, vous devez utiliser | + | Par défaut, vous avez un bridge vmbr0 connecté |
- | Exemple pour le port 2222 qui sera redirigé | + | |
- | On déclare tout d' | + | |
- | iptables -t nat -A POSTROUTING -s 192.168.0.0/ | + | |
- | + | ||
- | 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: | + | |
- | //(a venir, une config plus sécurisé du firewall...)// | + | < |
+ | Name: vmbr0 | ||
+ | IPv4/CIDR : 94.94.94.94/24 | ||
+ | Gateway | ||
+ | Bridge ports: eno1 | ||
+ | </code> | ||
- | Je désactive l' | + | Créons un bridge qui définira notre réseau local |
- | L' | + | |
- | Pour cela, modifiez | + | < |
+ | Name: vmbr1 | ||
+ | IPv4/CIDR : 192.168.0.1/ | ||
+ | Gateway (IPv4) : (vide) | ||
+ | Bridge ports: (vide) | ||
+ | </ | ||
+ | |||
+ | On crée maintenant une VM avec les infos suivantes | ||
+ | < | ||
+ | Name: eth0 | ||
+ | Bridge: vmbr1 | ||
+ | IPv4 : Static | ||
+ | IPv4/CIDR : 192.168.0.2/ | ||
+ | Gateway (IPv4) : 192.168.0.1 | ||
+ | </ | ||
+ | |||
+ | Maintenant, il faut dire au système que l'on veut faire de l'ip forwarding | ||
+ | echo 1 > / | ||
+ | |||
+ | 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/ | ||
+ | |||
+ | Vous pouvez automatiser tout ça dans votre fichier | ||
+ | |||
+ | < | ||
+ | auto vmbr1 | ||
+ | iface vmbr1 inet static | ||
+ | address 192.168.0.1/ | ||
+ | bridge-ports none | ||
+ | bridge-stp off | ||
+ | bridge-fd 0 | ||
+ | post-up echo 1 > / | ||
+ | post-up iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o vmbr0 -j MASQUERADE | ||
+ | post-up / | ||
+ | post-down iptables -t nat -D POSTROUTING -s 192.168.0.0/ | ||
+ | </ | ||
+ | |||
+ | Le fichier / | ||
+ | |||
+ | 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: | ||
- | Rédémarrez apache | ||
- | Installons maintenant **pound** qui permet le reverse-proxy et load-balancer | ||
- | aptitude install pound | ||
- | [[linux: | ||
- | | ||
==== Cas de figure : Une adresse ip WAN pour chaque VM ==== | ==== Cas de figure : Une adresse ip WAN pour chaque VM ==== | ||
Ligne 130: | Ligne 175: | ||
Il n'y a plus qu'a les télécharger dans le répertoire template prévu par proxmox. | Il n'y a plus qu'a les télécharger dans le répertoire template prévu par proxmox. | ||
+ | |||
+ | ==== Proxmox 5 ==== | ||
+ | Plus de openVZ maintenant c'est du LXC | ||
+ | |||
+ | Our image repositories contain a list of available images, and there is a cron job run each day to download that list. You can trigger that update manually with: | ||
+ | |||
+ | pveam update | ||
+ | After that you can view the list of available images using: | ||
+ | |||
+ | pveam available | ||
+ | You can restrict this large list by specifying the section you are interested in, for example basic system images: | ||
+ | |||
+ | List available system images | ||
+ | |||
+ | # pveam available --section system | ||
+ | system | ||
+ | system | ||
+ | system | ||
+ | system | ||
+ | system | ||
+ | system | ||
+ | system | ||
+ | system | ||
+ | system | ||
+ | |||
+ | Before you can use such a template, you need to download them into one of your storages. You can simply use storage local for that purpose. For clustered installations, | ||
+ | |||
+ | pveam download local debian-8.0-standard_8.0-1_amd64.tar.gz | ||
+ | |||
+ | You are now ready to create containers using that image, and you can list all downloaded images on storage local with: | ||
+ | |||
+ | # pveam list local | ||
+ | local: | ||
+ | |||
+ | The above command shows you the full Proxmox VE volume identifiers. They include the storage name, and most other Proxmox VE commands can use them. For example you can delete that image later with: | ||
+ | |||
+ | pveam remove local: | ||
+ | |||
====== Proxmox 4 ====== | ====== Proxmox 4 ====== | ||
Ligne 245: | Ligne 328: | ||
pct console 101 | pct console 101 | ||
+ | ====== Proxmox 5 ====== | ||
+ | |||
+ | ===== sur une VM non LXC, c'est lent ===== | ||
+ | |||
+ | Par exemple, j' | ||
+ | |||
+ | 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' | ||
+ | |||
+ | Heureusement, | ||
+ | |||
+ | systemctl stop pve-cluster | ||
+ | systemctl stop corosync | ||
+ | pmxcfs -l | ||
+ | rm / | ||
+ | rm / | ||
+ | killall pmxcfs | ||
+ | systemctl start pve-cluster | ||
+ | | ||
+ | |||
+ | ====== Proxmox 6 ====== | ||
+ | |||
+ | ===== Installation ===== | ||
+ | |||
+ | Bizarrement, | ||
+ | |||
+ | Au préalable, il va falloir bien partitionner son serveur en n' | ||
+ | |||
+ | * /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' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Ensuite il faut suivre le tuto officiel => https:// | ||
+ | |||
+ | Petite particularité soyoustart, il y a un cloud config à modifier pour ne pas qu'il écrase le fichier /etc/hosts à chaque reboot | ||
+ | |||
+ | vi / | ||
+ | |||
+ | Commenter la ligne suivante dans le **cloud_init_modules** | ||
+ | # - update_etc_hosts | ||
+ | et modifiez la ligne suivante à la fin du fichier | ||
+ | manage_etc_hosts: | ||
+ | en | ||
+ | manage_etc_hosts: | ||
+ | |||
+ | Redémarrez et supprimez ensuite les anciens kernel en 4.xx | ||
+ | |||
+ | Convertissez votre partition en lvm-thin | ||
+ | |||
+ | < | ||
+ | |||
+ | // pour cela, on le supprime | ||
+ | root@proxmox6:/# | ||
+ | root@proxmox6:/# | ||
+ | Do you really want to remove active logical volume vg/vz? [y/n]: y | ||
+ | Logical volume " | ||
+ | |||
+ | // on le recrée avec 99% de l' | ||
+ | root@proxmox6:/# | ||
+ | WARNING: ext4 signature detected on / | ||
+ | Wiping ext4 signature on / | ||
+ | Logical volume " | ||
+ | root@proxmox6:/# | ||
+ | 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 | ||
+ | UUID=822a0a6d-46fb-45de-bd8d-3eb386323977 | ||
+ | # | ||
+ | UUID=18245d31-414d-4339-b13d-70b730fc109f | ||
+ | UUID=2d1cff2c-f4a0-4455-a694-b2e06191aa71 | ||
+ | UUID=3c2be4e9-eec4-49aa-8148-121f6151c3aa | ||
+ | |||
+ | </ | ||
+ | |||
+ | On se retrouve ensuite avec un proxmox 6 tout neuf. L' | ||
+ | |||
+ | ===== Configuration ===== | ||
+ | Maintenant que tout est installé, il va falloir configurer 2, 3 trucs dans l' | ||
+ | |||
+ | |||
+ | Sélectionnez votre serveur proxmox puis allez dans Système / Réseau | ||
+ | |||
+ | Créer un "Linux Bridge" | ||
+ | |||
+ | Ensuite, redémarrez votre proxmox. | ||
+ | |||
+ | |||
+ | Toujours dans Système, Certificats permet d' | ||
+ | |||
+ | 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:// | ||
+ | |||
+ | sed -i ' | ||
+ | sed -i -e ' | ||
+ | apt update | ||
+ | apt dist-upgrade | ||
+ | |||
+ | Ensuite, je n' | ||
+ | |||
+ | < | ||
+ | update-initramfs: | ||
+ | |||
+ | gzip: stdout: No space left on device | ||
+ | E: mkinitramfs failure gzip 1 | ||
+ | update-initramfs: | ||
+ | run-parts: / | ||
+ | Failed to process / | ||
+ | dpkg: error processing package pve-kernel-5.15.131-1-pve (--configure): | ||
+ | | ||
+ | Setting up libboost-iostreams1.74.0: | ||
+ | Setting up libsigc++-2.0-0v5: | ||
+ | Setting up aptitude-common (0.8.13-3) ... | ||
+ | dpkg: dependency problems prevent configuration of pve-kernel-5.15: | ||
+ | | ||
+ | Package pve-kernel-5.15.131-1-pve is not configured yet. | ||
+ | |||
+ | dpkg: error processing package pve-kernel-5.15 (--configure): | ||
+ | | ||
+ | dpkg: dependency problems prevent configuration of proxmox-ve: | ||
+ | | ||
+ | Package pve-kernel-5.15 is not configured yet. | ||
+ | |||
+ | dpkg: error processing package proxmox-ve (--configure): | ||
+ | | ||
+ | Setting up libcwidget4: | ||
+ | Setting up aptitude (0.8.13-3) ... | ||
+ | update-alternatives: | ||
+ | Processing triggers for man-db (2.9.4-2) ... | ||
+ | Processing triggers for libc-bin (2.31-13+deb11u7) ... | ||
+ | Errors were encountered while processing: | ||
+ | | ||
+ | | ||
+ | | ||
+ | E: Sub-process / | ||
+ | |||
+ | </ | ||
+ | |||
+ | et le reboot s'est mal passé... | ||
+ | |||
+ | Obligé de rebooter sur un live rescue | ||
+ | < | ||
+ | mount / | ||
+ | mount /dev/sda1 /mnt/boot | ||
+ | for name in proc sys dev ; do mount --bind /$name /mnt/$name; done | ||
+ | |||
+ | chroot /mnt | ||
+ | </ | ||
+ | |||
+ | relancer les commandes apt dist-upgrade et constater que rien ne fonctionne... | ||
+ | |||
+ | Finalement, ce qui a fonctionner | ||
+ | < | ||
+ | umount /boot | ||
+ | fsck.ext4 -p -c -f /dev/sda1 | ||
+ | /dev/sda1: Updating bad block inode. | ||
+ | /dev/sda1: 362/51000 files (1.4% non-contiguous), | ||
+ | |||
+ | apt dist-upgrade | ||
+ | run-parts: executing / | ||
+ | Setting up pve-kernel-5.15 (7.4-8) ... | ||
+ | Setting up proxmox-ve (7.4-1) ... | ||
+ | |||
+ | </ | ||
+ | |||
+ | Plus d' | ||
+ | |||
+ | Après un reboot, j'ai eu droit à ça | ||
+ | Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0, | ||
+ | |||
+ | donc reboot sur un ancien kernel et | ||
+ | < | ||
+ | update-initramfs -u -k 5.15.131-1-pve | ||
+ | |||
+ | update-initramfs: | ||
+ | gzip: stdout: No space left on device | ||
+ | E: mkinitramfs failure gzip 1 | ||
+ | update-initramfs: | ||
+ | |||
+ | |||
+ | df -h /boot | ||
+ | Filesystem | ||
+ | / | ||
+ | </ | ||
+ | il n'y a donc pas assez d' | ||
+ | |||
+ | 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 | ||
+ | < | ||
+ | oot@proxmox202009:/ | ||
+ | update-initramfs: | ||
+ | Running hook script ' | ||
+ | Re-executing '/ | ||
+ | No / | ||
+ | root@proxmox202009:/ | ||
+ | Filesystem | ||
+ | / | ||
+ | |||
+ | root@proxmox202009:/ | ||
+ | Generating grub configuration file ... | ||
+ | Found linux image: / | ||
+ | Found initrd image: / | ||
+ | Found linux image: / | ||
+ | Found initrd image: / | ||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | On reboot. Et là... encore un problème. Le système boot bien, tout fonctionne sauf l' | ||
+ | |||
+ | Et oui il était écrit en petit dans la doc ( https:// | ||
+ | |||
+ | donc, faire un | ||
+ | ip -c link | ||
+ | pour récupérer l' | ||
+ | et rajouter dans le **/ | ||
+ | hwaddress 00: | ||
+ | on restart le réseau | ||
+ | systemctl restart networking | ||
+ | |||
+ | Et ça marche !! (enfin l' | ||
+ | |||
+ | Et ça fait plaisir de voir que je ne suis pas le seul à avoir eu des problèmes -> https:// |