Installer vmwaretool
| Fiche express | |
|---|---|
| Domaine | VMware Tools — installation dans une VM invitée |
| Méthode moderne | open-vm-tools (paquet distribution, préinstallé sur la plupart des Linux récents)
|
| Méthode historique | Tarball VMware Tools + script Perl vmware-install.pl
|
| Voir aussi | Vsphere · Upgrade esx |
VMware Tools est la suite de pilotes et services installée dans le système d'exploitation invité d'une VM VMware : pilotes vidéo/réseau optimisés, synchronisation d'horloge, arrêt propre depuis vCenter, échange de fichiers, etc.
Méthode recommandée : open-vm-tools
Sur les distributions Linux récentes, préférer le paquet open-vm-tools fourni par la distribution plutôt que l'installeur VMware historique :
# Debian/Ubuntu
apt-get install open-vm-tools
# RHEL/CentOS
yum install open-vm-tools
Cette méthode ne nécessite ni montage de CD-ROM ni compilation de module noyau, et suit le cycle de mise à jour de la distribution.
Méthode historique (installeur VMware)
(procédure datée — installeur classique VMware Tools, largement remplacé par open-vm-tools ci-dessus, mais toujours rencontré sur des VM anciennes)
Prérequis de compilation
# RHEL/CentOS
yum install kernel-devel kernel-headers gcc make
# Debian/Ubuntu
apt-get install linux-headers-$(uname -r)
Installation
Depuis le client vSphere, clic droit sur la VM puis Guest → Install/Upgrade VMware Tools. Cela monte virtuellement un CD-ROM contenant l'installeur dans la VM :
mount /dev/cdrom /mnt/
cd
tar -zxf /mnt/VMwareTools-x.x.x-xxxxxx.tar.gz
cd vmware-tools-distrib
./vmware-install.pl
Répondre par défaut (yes/entrée) à toutes les questions de l'installeur interactif.
Script de mise à niveau en masse
Script permettant de parcourir toutes les VM d'un hôte et de lancer la mise à niveau des VMware Tools sur chacune (à exécuter depuis un hôte ESX en shell, via vmware-vim-cmd) :
#!/bin/bash
# Mise à niveau automatique des VMware Tools
TEMPFILE=/root/temp_vmlist
RESULTFILE=/root/temp_vmupgrade
# Liste des VM (id) sur l'hôte
vmware-vim-cmd vmsvc/getallvms | grep vmx | awk '{printf("%s \n"), $1}' > "$TEMPFILE"
for a in $(cat "$TEMPFILE"); do
VMSTATE=$(vmware-vim-cmd vmsvc/power.getstate "$a" | grep Powered | awk '{print $2}')
echo "VM $a : etat $VMSTATE" >> "$RESULTFILE"
echo "Mise a niveau des VMware Tools pour la VM $a" >> "$RESULTFILE"
vmware-vim-cmd vmsvc/tools.upgrade "$a"
done
rm -f "$TEMPFILE"