donderdag 3 mei 2012

VMware tools installeren op Ubuntu Server 12.4

Je hebt een virtuele Ubuntu Server 12.04 "Precise Pangolin" 64-bit draaien in je VMware vSphere 5.0 omgeving. Je wilt de VMware tools voor Ubuntu installeren omdat de server zich zo beter gedraagt in een virtuele omgeving. Je hebt geen X draaien en dus geen grafische gebruikersinterface behalve een knipperende cursor. Hoe doe je dat? OK dan, hier gaan we.


Er zijn een aantal manieren beschreven om dit te doen.
  1. Een makkelijke manier is om de virtuele CD-ROM met de VMware-tools te koppelen die wordt aangeboden vanuit jouw vSphere host met "install/upgrade VMware Tools". 
  2. Een andere manier is door het installeren van de open-source third-party package "open-vm-tools".
  3. Dan is er nog het toevoegen van een repository van VMware en daarvandaan packages voor Ubuntu te installeren. Helaas zijn op het moment van schrijven nog geen package voor Ubuntu 12.04 Precise Pangolin beschikbaar .
Ik laat methode 1 en 2 hier zien.

Install/Upgrade VMware Tools


Allereerst ga je naar de vSphere client en kies voor de bewuste virtuele machine [Guest →Install/upgrade VMware Tools].
Open vervolgens een shellprompt en klop de volgende commandoregels in:

$ sudo -s
want je wilt de volgende stappen uitvoeren als root en zo maken we het onszelf makkelijk. Voer je wachtwoord in en ram op je Enter.

Allereerst even de volgende zaken installeren , omdat deze nodig zijn voor het  compileren van enkele kernel-modules later in het verhaal.
  • make
  • gcc
  • kernel headers voor huidige kernelmodules
Het volgende commando installeert alles wat nodig is:
# apt-get update
# apt-get install build-essential

Om de CD-ROM te koppelen en de vmware tools-installer uit te pakken

# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom
# cd /root
# tar zxvf /mnt/cdrom/VMwareTools-8.6.5-652272.tar.gz

Nu is op de map /mnt/cdrom de virtuele CD-ROM gekoppeld met de vmware-tools en in /root is een map aangemaakt, genaamd vmware-tools-distrib .  Hierin vind je het installatiescript dat we starten met de schakeloptie -d , zodat het alles defaults accepteert. Als we dit niet doen, krijgen je een hele rij vragen voorgeschoteld, die overigens allemaal kunnen worden beantwoord met zinnige defaults door een druk op de Enter-toets.


# cd vmware-tools-distrib
# ./vmware-install.pl
We runnen dit script. Hieronder een uitdraai van de uitvoer die je krijgt.

root@bcgaia:/root/vmware-tools-distrib# ./vmware-install.pl -d
Creating a new VMware Tools installer database using the tar4 format.

Installing VMware Tools.

In which directory do you want to install the binary files?
[/usr/bin]

What is the directory that contains the init directories (rc0.d/ to rc6.d/)?
[/etc]

What is the directory that contains the init scripts?
[/etc/init.d]

In which directory do you want to install the daemon files?
[/usr/sbin]

In which directory do you want to install the library files?
[/usr/lib/vmware-tools]

The path "/usr/lib/vmware-tools" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes]

In which directory do you want to install the documentation files?
[/usr/share/doc/vmware-tools]

The path "/usr/share/doc/vmware-tools" does not exist currently. This program
is going to create it, including needed parent directories. Is this what you
want? [yes]

The installation of VMware Tools 8.6.5 build-652272 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command: "/usr/bin/vmware-uninstall-tools.pl".

Before running VMware Tools for the first time, you need to configure it by
invoking the following command: "/usr/bin/vmware-config-tools.pl". Do you want
this program to invoke the command for you now? [yes]

Initializing...


Making sure services for VMware Tools are stopped.



[EXPERIMENTAL] The VMware FileSystem Sync Driver (vmsync) is a new feature that
creates backups of virtual machines. Please refer to the VMware Knowledge Base
for more details on this capability. Do you wish to enable this feature?
[no]

Using 2.6.x kernel build system.
make: Map '/tmp/vmware-root/modules/vmci-only' wordt binnengegaan
make -C /lib/modules/3.2.0-24-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
          MODULEBUILDDIR= modules
make[1]: Map '/usr/src/linux-headers-3.2.0-24-generic' wordt binnengegaan
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciDatagram.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciEvent.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciGuestDs.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciGuestKernelIf.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciKernelIf.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciNotifications.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciProcess.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciQPair.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciQueuePair.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciUtil.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmci_drv.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/kernelStubsLinux.o
  LD [M]  /tmp/vmware-root/modules/vmci-only/vmci.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/vmware-root/modules/vmci-only/vmci.mod.o
  LD [M]  /tmp/vmware-root/modules/vmci-only/vmci.ko
make[1]: Map '/usr/src/linux-headers-3.2.0-24-generic' wordt verlaten
make -C $PWD SRCROOT=$PWD/. \
          MODULEBUILDDIR= postbuild
make[1]: Map '/tmp/vmware-root/modules/vmci-only' wordt binnengegaan
make[1]: 'postbuild' is bijgewerkt.
make[1]: Map '/tmp/vmware-root/modules/vmci-only' wordt verlaten
cp -f vmci.ko ./../vmci.o
make: Map '/tmp/vmware-root/modules/vmci-only' wordt verlaten

Using 2.6.x kernel build system.
make: Map '/tmp/vmware-root/modules/vmci-only' wordt binnengegaan
make -C /lib/modules/3.2.0-24-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
          MODULEBUILDDIR= modules
make[1]: Map '/usr/src/linux-headers-3.2.0-24-generic' wordt binnengegaan
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciDatagram.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciEvent.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciGuestDs.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciGuestKernelIf.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciKernelIf.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciNotifications.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciProcess.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciQPair.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciQueuePair.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmciUtil.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/vmci_drv.o
  CC [M]  /tmp/vmware-root/modules/vmci-only/kernelStubsLinux.o
  LD [M]  /tmp/vmware-root/modules/vmci-only/vmci.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/vmware-root/modules/vmci-only/vmci.mod.o
  LD [M]  /tmp/vmware-root/modules/vmci-only/vmci.ko
make[1]: Map '/usr/src/linux-headers-3.2.0-24-generic' wordt verlaten
make -C $PWD SRCROOT=$PWD/. \
          MODULEBUILDDIR= postbuild
make[1]: Map '/tmp/vmware-root/modules/vmci-only' wordt binnengegaan
make[1]: 'postbuild' is bijgewerkt.
make[1]: Map '/tmp/vmware-root/modules/vmci-only' wordt verlaten
cp -f vmci.ko ./../vmci.o
make: Map '/tmp/vmware-root/modules/vmci-only' wordt verlaten
Using 2.6.x kernel build system.
make: Map '/tmp/vmware-root/modules/vsock-only' wordt binnengegaan
make -C /lib/modules/3.2.0-24-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
          MODULEBUILDDIR= modules
make[1]: Map '/usr/src/linux-headers-3.2.0-24-generic' wordt binnengegaan
  CC [M]  /tmp/vmware-root/modules/vsock-only/linux/af_vsock.o
  CC [M]  /tmp/vmware-root/modules/vsock-only/linux/notify.o
  CC [M]  /tmp/vmware-root/modules/vsock-only/linux/notifyQState.o
  CC [M]  /tmp/vmware-root/modules/vsock-only/linux/stats.o
  CC [M]  /tmp/vmware-root/modules/vsock-only/linux/util.o
  CC [M]  /tmp/vmware-root/modules/vsock-only/linux/vsockAddr.o
  CC [M]  /tmp/vmware-root/modules/vsock-only/driverLog.o
  LD [M]  /tmp/vmware-root/modules/vsock-only/vsock.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/vmware-root/modules/vsock-only/vsock.mod.o
  LD [M]  /tmp/vmware-root/modules/vsock-only/vsock.ko
make[1]: Map '/usr/src/linux-headers-3.2.0-24-generic' wordt verlaten
make -C $PWD SRCROOT=$PWD/. \
          MODULEBUILDDIR= postbuild
make[1]: Map '/tmp/vmware-root/modules/vsock-only' wordt binnengegaan
make[1]: 'postbuild' is bijgewerkt.
make[1]: Map '/tmp/vmware-root/modules/vsock-only' wordt verlaten
cp -f vsock.ko ./../vsock.o
make: Map '/tmp/vmware-root/modules/vsock-only' wordt verlaten

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.

The module vmmemctl 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=vmmemctl to override.

The VMware Host-Guest Filesystem allows for shared folders between the host OS
and the guest OS in a Fusion or Workstation virtual environment.  Do you wish
to enable this feature? [no]

Using 2.6.x kernel build system.
make: Map '/tmp/vmware-root/modules/vmxnet-only' wordt binnengegaan
make -C /lib/modules/3.2.0-24-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
          MODULEBUILDDIR= modules
make[1]: Map '/usr/src/linux-headers-3.2.0-24-generic' wordt binnengegaan
  CC [M]  /tmp/vmware-root/modules/vmxnet-only/vmxnet.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/vmware-root/modules/vmxnet-only/vmxnet.mod.o
  LD [M]  /tmp/vmware-root/modules/vmxnet-only/vmxnet.ko
make[1]: Map '/usr/src/linux-headers-3.2.0-24-generic' wordt verlaten
make -C $PWD SRCROOT=$PWD/. \
          MODULEBUILDDIR= postbuild
make[1]: Map '/tmp/vmware-root/modules/vmxnet-only' wordt binnengegaan
make[1]: 'postbuild' is bijgewerkt.
make[1]: Map '/tmp/vmware-root/modules/vmxnet-only' wordt verlaten
cp -f vmxnet.ko ./../vmxnet.o
make: Map '/tmp/vmware-root/modules/vmxnet-only' wordt verlaten

The vmblock enables dragging or copying files between host and guest in a
Fusion or Workstation virtual environment.  Do you wish to enable this feature?
[no]

No X install found.

Creating a new initrd boot image for the kernel.
update-initramfs: Generating /boot/initrd.img-3.2.0-24-generic
vmware-tools start/running
The configuration of VMware Tools 8.6.5 build-652272 for Linux for this running
kernel completed successfully.

You must restart your X session before any mouse or graphics changes take
effect.

You can now run VMware Tools by invoking "/usr/bin/vmware-toolbox-cmd" from the
command line or by invoking "/usr/bin/vmware-toolbox" from the command line
during an X server session.

To enable advanced X features (e.g., guest resolution fit, drag and drop, and
file and text copy/paste), you will need to do one (or more) of the following:
1. Manually start /usr/bin/vmware-user
2. Log out and log back into your desktop session; and,
3. Restart your X session.

Enjoy,

--the VMware team

Found VMware Tools CDROM mounted at /mnt/cdrom. Ejecting device /dev/sr0 ...




Ziezo! Klaar is Paul!

Overigens weet ik hier niet zeker, wanneer er een nieuwe kernel wordt geinstalleerd, of kernelemodule automatisch worden bijgewerkt. Mocht je dat met de hand willen doen, dan doe je dat met het script in /usr/bin/vmware-config-tools.pl .

In vSphere Client v5.0 zie je nu de VMware Tools geinstalleerd.

Via lsmod zie je volgende modules :
paul@bcweb1:~$ lsmod
Module                  Size  Used by
vsock                  48206  0
acpiphp                24231  0
ppdev                  17113  0
parport_pc             32866  1
lp                     17799  0
vmw_balloon            12809  0
parport                46562  3 ppdev,parport_pc,lp
psmouse                87692  0
shpchp                 37277  0
i2c_piix4              13301  0
serio_raw              13211  0
mac_hid                13253  0
vmci                   54487  1 vsock
floppy                 70365  0
e1000                 108476  0
mptspi                 22921  6
mptscsih               44882  1 mptspi
mptbase               103162  2 mptspi,mptscsih
vmxnet                 26931  0
vmw_pvscsi             22881  0
vmxnet3                45883  0

 

Installeer open-vm-tools vanuit repository

Dit kan ook. Via deze manier krijg je automatisch updates. Doe eenvoudig dit:
# apt-get install open-vm-tools

Deze manier zal meteen voor jouw de benodigde afhankelijkheden oplossen, dus dat is wel zo makkelijk.  Ik verwacht dat op deze manier ook kernelmodules worden bijgewerkt, wanneer de kernel wordt geupgradet.

Als het goed is, is het ook nu zichtbaar in vSphere Client dat de VMware Tools zijn geinstalleerd.
Dat ziet er dan wel anders uit.


Geen opmerkingen:

Een reactie posten