Redimensionner un disque Hassio sur ESXi

Pour redimensionner un disque ESXi sous Windows c'est facile. On change la taille du disque dans la console VMWare et on agrandit la partition avec le gestionnaire de disque Windows. Il est également possible de réduire, mais c’est plus compliqué et je vous laisse un peu chercher car ce n’est pas le but de cet article.

Dans le cas d'une partition Linux c’est un peu différent. J'avais le cas avec ma VM Home Assistant HASSIO qui de base est configurée avec 6 GO, ce qui s'avère rapidement trop juste.

Avec les dernières versions de ESXi on doit pouvoir faire la partie VMWare directement en augmentant directement la taille dans la la console (à condition de ne pas avoir de snapshot), sauf que dans mon cas (ESXi 5.5) c'est impossible, grisé dans le client VShere et erreur dans le client web. Et sans ça impossible d'aller plus loin.

La solution

Elle passe par SSH après avoir arrêté la VM :

1 - on va dans le répertoire ou se trouve notre disque virtuel
cd /vmfs/volumes/datastore1/hassio/
2 - on clone le disque virtuel existant
vmkfstools -i hassio.vmdk hassio_clone.vmdk
3 - on redimensionne le clone
vmkfstools -X 40g hassio_clone.vmdk
4 - on le renomme si on le souhaite...
vmkfstools -E "originalname.vmdk" "newname.vmdk"

Redimensionner

Maintenant on va pouvoir réellement redimensionner la partition :

  1. Dans les paramètres de la machine on supprime l'ancien disque et on ajoute le nouveau et on sauvegarde.
  2. On ouvre à nouveau les paramètres pour ajouter un lecteur de CD qui pointe sur l'ISO de GParted que l'on aura au préalable téléchargé ici.
  3. Dans les options de la VM on change le boot de EFI vers BIOS et on sauvegarde.
  4. On lance la VM qui va démarrer sur le CD de GParted (une petite vidéo pour vous faire une idée).
  5. Important, quand GParted vous demande de réparer (fix) la partition vous répondez OUI !
  6. Ensuite il suffit de redimensionner la partition /dev/sda8 sans oublier d'appliquer votre choix.
  7. On ferme tout ça et on édite la VM pour retirer le lecteur de CD virtuel et surtout repasser le boot en mode EFI.
  8. On sauvegarde et on peu relancer la VM avec son disque ainsi redimensionné. Si tout va bien on fera le ménage en supprimant l'ancien VMDK.

Sources

 

Exploiter un serveur dédié chez Online

Je dispose depuis des années, entre autres, d’un serveur dédié sur Online / Scaleway. Pourquoi eux ? Pour le service toujours très réactif, ils répondent au téléphone tout de suite, et par exemple hier soir j’ouvre un ticket à 3 heures du matin et en 5 minutes j’avais ma réponse. Bref, on n’est pas chez OVH ! A l’occasion d’une promo je commande un nouveau serveur avec une belle remise, je me trompe en en choisissant un sans RAID hardware, un coup de fil et c’est réglé et remboursé et je n’ai plus qu’à recommander le bon serveur, avec du RAID car je veux faire de l’ESX.

Vous allez me demander pourquoi je ne prends pas simplement des instance cloud, simplement parce que c'est bien plus coûteux et surtout j'aime bien avoir la main sur toute la chaîne.

Installer un hyperviseur sur ce genre de serveur permet de mutualiser plusieurs VM dont j’aurais besoin. Pour accéder à ces VM Online propose des IP Failover facturées en sus, que l’on affecte généralement à chaque VM, qui seront de fait exposée sur le net avec leur IP. Cela pose deux problèmes, outre le coût (1.99 € / mois par IP) qui n’est pas le plus important, la sécurité du serveur hébergé sur la VM n’est assurée que par le firewall de l’O/S, ce qui reste léger et potentiellement vulnérable.

J’ai donc fait le choix cette fois de ne pas exposer mes VM et d’installer une VM frontale qui servira de reverse proxy et qui sera la seule vue de l’extérieur, donc je n’aurais besoin que d’une seule IP Failover. Il existe plusieurs solutions pour faire ça, Traefik, Ngnix par exemple, j’ai choisi pfSense avec le plugin HAProxy qui est simple à déployer et qui en plus gère très bien les certificats Lets Encrypt via le plugin Acme.

Dans la pratique on installe ESX en quelques clics via la console Online, ensuite on crée sur ESX un LAN qui n’est connecté à aucune carte réseau (on doit pouvoir utiliser le même swich virtuel que pour le WAN avec un VLAN, mais ce serait se compliquer la vie). Dans la console Online on achète une IP Failover, on l’associe au serveur dédié et on lui attribue une adresse MAC que l’on reportera sur le WAN de la VM pfSense. (je trouve le client vSphère plus intuitif que la version web pour faire ce genre de réglages).

On installe pfSense à partir d’une ISO dans une VM avec une patte WAN (sans oublier d'y reporter la MAC adresse de l'IP Faiover), et une patte LAN. Pour ces deux interfaces on prend une carte réseau VMXNet3 pour de meilleures performances.

Une fois l’installation terminée, depuis la console ont défini VMX0 sur le WAN et VMX1 sur le LAN et on configure les adresses IP correspondantes, l’IP Failover sur le WAN (SANS GATEWAY, c’est important) et une IP LAN, 192.168.x.1 par exemple et sans passerelle puisque c’est le LAN. On n’active pas le serveur DHCP.

Ensuite on passe dans le shell de la console (ce n’est pas du Linux mais du FreeBSD) et c’est là qu’il y a une particularité qui est propre à certains hébergeurs, ici pour Online, mais il y a une variante OVH par exemple. pfSense ne permet pas d’avoir une passerelle en dehors du masque de son IP WAN, il va donc falloir ruser en la définissant via le shell :

route del default (pour retirer les passerelles existantes)
route add -net 62.210.0.1/32 -iface vmx0
route add default 62.210.0.1

A partir de là on peut se connecter à pfSense avec un navigateur et se laisser guider par le wizard. On confirmera l’IP Failover mais toujours sans passerelle (ni MAC). On teste avec les diag en faisant un ping vers 1.1.1.1 et on crée une règle pour autoriser le trafic sortant depuis notre LAN. Pour la suite de la configuration cherchez vous un tuto sur pfSense !

Voilà, il ne reste plus qu’à installer nos VM et les publier via HAProxy dans pfSense.

Bonus

  • Mettre des ACL sur le firewall d’ESX pour limiter l’admin uniquement depuis certaines IP
  • Rendre l'accès à la configuration pfSense accessible uniquement depuis le LAN
  • Installer une VM Zerotier site-to-site afin de pouvoir accéder aux VM (en RDP ou SSH par exemple) ainsi qu'à l’admin de pfSense qui ne sera exposée que sur le LAN.
  • Sur pfSense installer le package Open-VM-Tools
  • Sur pfSense installer le package Shellcmd afin de figer les routes spécifiques exposées ci-dessus.

J’ai fait ça sur un serveur un peu costaud, mais c’est jouable sur les petits serveurs Avoton d'entrée de gamme qui étaient soldés à 4 € avec 16 GO…

Sources