Le site des administrateurs systèmes sous Mac OS X
  Il existe toujours de nombreuses manières de faire : la bonne et les autres.



Accueil du site > Sondages > Installations de mises à jour et de packages sous ESXi
Installations de mises à jour et de packages sous ESXi

vendredi 11 septembre 2015, par Jayce Piel

Il existe plusieurs manières de mettre à jour son serveur. Mais pour cela, il faut encore savoir que les mises à jour sont disponibles. De plus, il est parfois utile d’installer des packages tierces. Cet article va s’inspirer très fortement des solutions mises en place par le blog VMware Front Experience.


Tout d’abord, merci à Andreas Peetz et à son blog VMware Front Experience.

Des mises à jour ESXi…

Il est important de garder ses systèmes ESXi à jour, mais pour cela, il faut savoir quelles mise à jour sont disponibles. Pour cela, vous pouvez vous référer au VMware ESXi Patch Tracker. Ce site traque et répertorie l’ensemble des mises à jour postées par VMware sur les différentes versions de ESXi (de 5.0.0 à 6.0.0). Vous pouvez vous abonner au flux RSS pour être tenu au courant de nouvelles mises à jour, pour l’ensemble du site ou juste pour une version spécifique.

Il est à noter que lorsqu’il y a plusieurs mises à jour, il n’est pas nécessaire de les faire toutes et dans l’ordre. Chaque package de mise à jour contient la dernière version de chaque module (on peut donc dire que chaque mise à jour est une mise à jour combo). Dans la plupart des cas, les paquets de mise à jour qui vous intéresseront seront ceux dont le nom termine par -standard. Dans les autres cas, vous savez déjà certainement quels paquets utiliser.

Nous verrons plus bas comment installer les mises à jour.

Des paquets tierces…

Il peut être nécessaire d’installer des paquets tierces. Des outils ou plus couramment des drivers non livrés en standard avec ESXi. V-Front sévit encore en fournissant un dépôt publique de patchs et drivers.

Oui mais… Comment savoir de quoi j’ai besoin ?

Premièrement, si vous n’avez aucun problème, il est fort probable que vous n’ayez pas besoin d’installer quoi que ce soit.

Si par contre vous avez quelques périphériques qui ne sont pas reconnus, il peut être utile de chercher sur le site si il contient ce que vous recherchez. Je vous préviens tout de suite, il n’est pas nécessaire de chercher les drivers pour les cartes Firewire, il n’y en a actuellement pas.

Pour trouver les informations sur le périphérique que vous souhaitez utiliser, il faut utiliser la commande :
lspci -v

Si vous cherchez une carte réseau vous pouvez limiter la recherche aux périphériques de classe 0200, pour les contrôleurs SATA AHCI, la classe est 0106. Exemple d’une partie du résultat sur un de mes XServes :

[root@xserve1-esxi:~]lspci -v |grep "Class 0200" -B 1

0000:02:00.0 Ethernet controller Network controller: SysKonnect SK-9E22 Server Adapter
         Class 0200: 1148:9e00

...

Cette carte réseau n’est pas reconnue par ESXi. On pourrait chercher un driver par le nom ou la marque du contrôleur, mais il est préférable de chercher par numéro d’ID PCI, ici : 1148:9e00. En cherchant cet ID sur le dépôt, j’ai trouvé le paquet net51-sky2 que j’ai ensuite installé.

Avant l’installation…

Il est à noter que dans la suite de l’article, les références au mode maintenance sont essentiellement pour les machines reliées à un serveur vCenter. Pour les hôtes seuls (un serveur ESXi non relié à un vCenter), le mode maintenance est en fait inutile.

En effet, le mode maintenance sert à déplacer les machines virtuelles en cours d’exécution sur les autres serveurs du cluster afin que le serveur courant soit « libre ». Sur une machine non membre d’un cluster, il ne fait rien et sera même bloqué jusqu’à ce que les machines virtuelles soient coupées ou suspendues à la main.

Pour une mise à jour système, il est toujours préférable de redémarrer après la mise à jour. Pour les outils et drivers tierces, cela dépend du package. Pour savoir si votre paquet nécessite le mode maintenance ou un redémarrage, il faut voir les informations dessus. En reprenant l’exemple du paquet net51-sky2 cité plus haut, voici la commande à lancer et son résultat :

[root@xserve1-esxi:~] esxcli software sources vib get -d http://vibsdepot.v-front.de -n net51-sky2
VFrontDe_bootbank_net51-sky2_1.20-2vft.510.0.0.799733
  Name: net51-sky2
  Version: 1.20-2vft.510.0.0.799733
  Type: bootbank
  Vendor: VFrontDe
  Acceptance Level: CommunitySupported
  Summary: sky2: net driver for VMware ESX
  Description: Marvell Yukon 2 driver
  ReferenceURLs: kb|http://vibsdepot.v-front.de/wiki/index.php/Net51-sky2
  Creation Date: 2015-05-01
  Depends: vmkapi_2_1_0_0, com.vmware.driverAPI-9.2.1.0
  Conflicts: net51-drivers
  Replaces: net-sky2, net-sky2-1
  Provides:
  Maintenance Mode Required: True
  Hardware Platforms Required:
  Live Install Allowed: False
  Live Remove Allowed: False
  Stateless Ready: True
  Overlay: False
  Tags: driver, module
  Payloads: net51-sk

Il y a deux choses à noter dans ces informations. premièrement, comme la plupart des paquets sur ce dépôt, la ligne Acceptance Level: CommunitySupported indique qu’il faut changer le niveau d’acceptation de paquets. Par défaut, les paquets « communautaires » ne sont pas installables. Cela se fait simplement en lançant la commande :
esxcli software acceptance set --level=CommunitySupported

La deuxième chose à noter est la ligne Maintenance Mode Required: True qui indique qu’il faut être en mode maintenance.

Passer en mode maintenance

Si vous êtes sur un hôte non membre d’un cluster vCenter, il est normalement inutile de passer en mode maintenance. Si vous voulez tout de même le faire, il faut suspendre les VMs actives. Vous pouvez le faire par vSphere Client, par Fusion Pro, ou par la ligne de commande. Je vais décrire ici uniquement cette dernière manière :

  • récupérer la liste des VMs et de leur ID : vim-cmd vmsvc/getallvms
  • récupérer la liste des VMs actives : esxcli vm process list
  • suspendre les VMs via leur VMID : vim-cmd vmsvc/power.suspend ID

Si vous êtes sur un hôte membre d’un cluster, le fait de passer en mode maintenance lancera le déplacement des VMs actives automatiquement.

Pour passer en mode maintenance : esxcli system maintenanceMode set --enable true

Une fois les mises à jour installées, avant de redémarrer ou après l’avoir fait, n’oubliez pas de sortir du mode maintenance par la commande :
esxcli system maintenanceMode set --enable false

(il est en général conseillé de sortir du mode maintenance après le redémarrage)

Installation des paquets en mode connecté

La manière la plus simple pour installer les paquets ou les mises à jour est de le faire directement en ligne.

Pour une mise à jour système, la commande à lancer est :
esxcli software profile update -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml -p ESXi-6.0.0-20150902001-standard en remplaçant le nom du paquet par celui de la mise à jour que vous voulez installer. Cela peut prendre du temps car il y a à la fois le temps de téléchargement et le temps d’installation.

Pour un paquet tierce (venant du dépôt Front-Experience), la commande pour installer le paquet est :
esxcli software vib install -d http://vibsdepot.v-front.de -n net51-sky2 en remplaçant là encore le nom du paquet par celui que vous voulez installer.

Installation des paquets en mode déconnecté

Si vous préférez télécharger le paquet pour l’installer après, il faut alors s’assurer de télécharger le paquet décrit comme « Offline » (en général une archive zip). La commande est alors : esxcli software update -d /chemin/complet/vers/paquet.zip -p nom_paquet

Pour les mises à jour système, vous les trouverez sur le site VMware, pour les paquets, le lien est sur la page de description de celui-ci.

Mais… Je n’arrive pas à télécharger les paquets sur mon serveur !

Il est fort probable que vous rencontriez un problème lors de la tentative de téléchargement des paquets. Si c’est le cas, la solution est relativement simple. En fait, il y a deux choses à vérifier. La première chose est de vérifier que la règle du pare-feu bloquant le flux http en sortie est bien désactivée. Vous pouvez le faire via vSphere Client dans les profils de sécurité, ou en ligne de commande avec la commande suivante :
esxcli network firewall ruleset set -e true -r httpClient

Mais il est possible que ça ne suffise pas et il faut alors remercier encore Andreas pour la solution. Comme il l’indique dans l’article Annoying IP dual stack issue with VMware ESXi (que je vous conseille de lire pour comprendre les détails du problème), cela est dû à un problème dans la manière dont python interagit avec les différentes couches réseau et l’utilisation d’IPv6 dans un réseau qui ne le gère pas.

Pour faire simple, si votre serveur ESXi est dans un réseau qui ne gère pas l’IPv6, il est préférable de désactiver l’IPv6 plutôt que de le laisser utiliser une adresse locale. Cela se fait très simplement, soit par vSphere Client, dans les paramètres des interfaces réseaux,

PNG - 78.1 ko
Désactiver IPv6

soit via le shell par la commande suivante :
esxcli network ip set --ipv6-enabled=false

Dans les deux cas, il faudra redémarrer l’hôte ESXi après pour que le changement prenne effet.

Lorsque je lance ma mise à jour ça bloque !!!

Il m’est arrivé plusieurs fois d’avoir une erreur lors de la mise à jour comme celle là :

[InstallationError]
[Errno 32] Broken pipe
      vibs = VMware_locker_tools-light_6.0.0-2.43.4192238
Please refer to the log file for more details.

Et bien sûr, rien dans les logs pour donner plus d’information…

J’ai eu beaucoup de mal à trouver une solution car peu de sites parlent de cette erreur. Redémarrer ne règle pas le problème. En fait, le problème vient du dossier (partition) locker. D’après mes recherches sur le dossier locker, c’est lié à la partition scratch, mais le problème est qu’il y a aussi une partition scratch différente.

Donc je n’ai pas trouvé la raison, mais j’ai trouvé une solution :

$ mv /locker /locker.old
$ ln -s /store /locker

Une fois fait cela, la mise à jour devrait se passer sans soucis.


[ Haut ] Enregistrer au format PDF

Creative Commons License

Cette création est mise à disposition sous un contrat Creative Commons.




Recommandez ce site à un ami :

Votre Prénom : E-mail de votre ami :

Valid XHTML 1.0 Transitional

FORUM DE L'ARTICLE :



1 Message
Installations de mises à jour et de packages sous ESXi

23 février 2016 10:30, par Jayce Piel
J’ai modifié l’article pour faire une mise au point sur le mode maintenance. Il n’est en effet pas nécessaire de passer en mode maintenance sur un serveur ESXi non relié à un cluster vCenter.