Beim Installieren der VMware-Tools unter Linux stellt das Script vmware-install.pl eine Menge Fragen.
Dies ist insbesondere lästig, wenn die Tools – z.B. nach einem Kernel-Update – erneut installiert werden müssen.
Auch für die automatische Bereitstellung von Maschinen ist die Fragerei hinderlich.
Mit den richtigen Kommandozeilenoptionen kann man die Installation automatisieren.
Entpacken der VMware-Tools
Im VMware-Player oder der VMware Console muss der Menüpunkt “Virtual Machine / (Re-)Install VMware Tools” ausgewählt werden.
Hiermit ‘schiebt’ VMware dann eine (virtuelle) CD in das Laufwerk.
Diese CD wird dann vom Gast-Betriebssystem (meistens) automatisch gemountet.
# optional (mounten der CD)
mount | grep VMware\ Tools ||
( mkdir /media/"VMware Tools" &&
mount /dev/cdrom /media/"VMware Tools" )
# Entpacken der Tools
cd /tmp
tar xzf /media/VMware\ Tools/VMwareTools-*.tar.gz
Für eine automatische Installation legt man sich das .tar.gz Archiv an eine geeignete Stelle und überträgt es mit wget, scp, mount oder auf anderen Wegen (z.B. BladeLogic RSCD-Agent).
Vorsicht: Das Installationsscript umountet die CD am Ende der Installation
Found VMware Tools CDROM mounted at /media/VMware Tools. Ejecting device
/dev/sr0 ...
Voraussetzungen
Anders als bei einer rpm-basierten Installation muss der Administrator sich selbst um die erforderlichen Voraussetzungen kümmern. Da bei der Installation der VMware Tools im zweiten Schritt die erforderlichen Kernelmodule kompiliert werden, müssen einige Pakete auf dem System installiert sein.
Ubuntu
Für Ubuntu habe ich bereits früher eine Anleitung geschrieben.
sudo apt-get install build-essential linux-headers-`uname -r`
OpenSuSE 11.4
zypper in make gcc kernel-devel
## (muss zur laufenden Kernel Version passen!)
vmware-install.pl
Für die meisten Distributionen, stellt VMware kein fertiges Paket (z.B. .rpm), sondern ein .tar.gz Archiv zur Verfügung.
Hier erfolgt die Installation über das Perl-Script vmware-install.pl.
Beim Aufruf ohne Optionen stellt das Script viele Fragen auf der Kommandozeile. In den meisten Fällen können die Standardwerte verwendet werden.
Usage
Mit -h kann man dem Programm eine (schlecht lesbare) Usage entlocken.
buddysuse:/tmp/vmware-tools-distrib # ./vmware-install.pl -h
VMware Tools 8.4.6 build-385536 for Linux installer
Usage: ./vmware-install.pl [[-][-]d[efault]]
default: Automatically answer questions with the proposed answer.
[[-][-]prefix=<path to install product: bin, lib, doc>
Put the installation at <path> instead of the default location.
This implies '--default'.
--clobber-kernel-modules=<module1,module2,...>
Forcefully removes any VMware related modules installed by any
other installer and installs the modules provided by this installer.
This is a comma seperated list of modules.
Defaulteinstellungen verwenden: -d
Mit dem Schalter -d werden alle Defaulteinstellungen übernommen. Dies entspricht dem Ablauf, wenn alle Fragen mit <RETURN> bzw. Y beantwortet werden.
Prefix ändern: -prefix=/usr/local
Wer den Installationspfad (Standard: /usr/bin, /usr/sbin, /usr/lib,…) ändern will, kann z.B. -prefix=/usr/local angeben.
Vorsicht: “This implies –default”, das Script stellt also keine Fragen mehr.
–clobber-kernel-modules
Bei einigen Distributionen (z.B. OpenSuSE) sind ggf. die open-vm-tools, open-vm-tools-gui und entsprechende Kernel-Module bereits installiert.
vmware-install.pl wird sich dann weigern, diese Module zu installieren, wenn nicht die Option –clobber-kernel-modules angegeben wird.
The module vmxnet3 has already been installed on this system by another
installer or package and will not be modified by this installer. Use the flag
--clobber-kernel-modules=vmxnet3 to override.
The module pvscsi has already been installed on this system by another
installer or package and will not be modified by this installer. Use the flag
--clobber-kernel-modules=pvscsi to override.
Zur Zeit installieren die VMware Tools diese Module:
--clobber-kernel-modules=vmhgfs,vmxnet,vmblock,vmci,vsock,vmxnet3,pvscsi
‘Geheime’ Optionen
Ein Blick in das Perl-Script verrät, dass es noch weitere – nicht dokumentierte – Optionen gibt.
if (lc($arg) =~ /^(-)?(-)?d(efault)?$/) {
$gOption{'default'} = 1;
} elsif (lc($arg) =~ /^--clobber-kernel-modules=([\w,]+)$/) {
$gOption{'clobberKernelModules'} = "$1";
} elsif (lc($arg) =~ /^(-)?(-)?nested$/) {
$gOption{'nested'} = 1;
} elsif (lc($arg) =~ /^-?-?prefix=(.+)/) {
$gOption{'prefix'} = $1;
} elsif ($arg =~ /=yes/ || $arg =~ /=no/) {
push(@setOption, $arg);
} elsif (lc($arg) =~ /^(-)?(-)?(no-create-shortcuts)$/) {
$gOption{'create_shortcuts'} = 0;
} else {
install_usage();
}
Beispiel-Log
Als Beispiel hier ein komplettes Log (OpenSuSE 11.4)
Fazit
Bei einem automatisierten Aufruf sollte man sich unbedingt eine Logdatei anlegen lassen:
./vmware-install.pl -d 2>&1 | tee install.log
Sonst weiß man bei Problemen nicht, was geklappt hat und was nicht. Wenn alles gut ging, ist der Exitcode = 0, sonst (meistens) = 1.
VMware Tools: Silent Install unter Linux ist ein Beitrag von: kenntwas.de - Technische Tipps