Sunday, July 13, 2008

VMware Server on Ubuntu Server 8.04 LTS

At work we've got a Dell server that we run several VMware virtual machines on top of Ubuntu. It's been running flawlessly for over a year now. Since another long term support (LTS) release of Ubuntu is now out I decided to upgrade our system. The new Ubuntu Server 8.04 LTS will be supported until 2013. By the time it's out of support the server may no longer exist (5 years is a lot of time in the computer world).

I tested the server release on a non-production machine before deciding to upgrade our primary server. I went through the whole process of OS installation, X and GNOME installation, as well as VMware Server 1.0.6 installation. I put some virtual machines on the test system and everything worked perfectly. So now on to the installation. This isn't a step-by-step guide; I'm just letting the world (you two that are reading this) know what I did. This info is provided as is, if you screw up your computer it's your fault, not mine, blah blah...


Install Ubuntu Server 8.04LTS (okay 8.04.1)
I installed Ubuntu Server from the 8.04LTS CD. Since I've had bad luck with seemingly okay installation media in the past, and since it's a good practice, I went ahead and booted the CD on the server and had Ubuntu check the CD for defects. It said the CD was fine and after a reboot I continued.

I had to configure the partitioning manually since I have a partition with data and the virtual machines that shouldn't be touched. The only additional option I checked during installation was the OpenSSH server so I can SSH in from another machine. You could always install that package afterward, but what the hell.

The installation took all of about 2 minutes (gotta love the stripped down server release). After the installation was complete I logged in and updated all of the installed packages and the kernel. I suppose this would be an optional step, but I would recommend that at the very least you update OpenSSH.

sudo aptitude update
sudo aptitude dist-upgrade

The upgrade command above will update all installed packages as well as the kernel and other packages it may normally hold back. I tested with the latest package releases and kernel and it works fine as of 2008.07.12.

Reboot the system! I have gotten into the habit of rebooting after doing things that might break the system. At least then I know where along the way the system broke and I can try to recover if necessary.

After the reboot was complete I installed the gui. I installed X, gdm and a basic GNOME desktop. In this case X and GNOME are for users that are not familiar with the Linux command line; namely people from my company that I may need to walk through certain procedures when something isn't working and I'm away. I want to be able to easily walk them through (or teach them) how to go into the VMware Server Console and access a guest machine. I installed gdm because I noticed that it was a little too difficult for some people to login to the console...I guess not seeing a window asking for username and password is a bit confusing for some people. Plus this eliminates having to type startx, which as we all know can be very tricky...

sudo aptitude install xorg gnome-core ubuntu-artwork gdm

Somewhere on the Ubuntu Forums I saw the ubuntu-artwork package being installed with gnome-core; it makes it look a lot better, but doesn't impact performance or anything. Before rebooting and getting into GNOME I added the following to the /etc/gdm/gdm.conf-custom file; this will turn off the menu giving people the option to reboot, shutdown, etc. from the greeter. If you'd rather not mess with the file manually you can also make the change after logging into GNOME (System → Administration → Login Window, Local tab, uncheck "Show Actions menu").

File: /etc/gdm/gdm.conf-custom
## You should already have a [greeter] section in that file.
[greeter]
SystemMenu=false

Reboot!

I rebooted and was greeted by the oh so lovely Ubuntu login screen. I logged into GNOME and was happy to be presented with an error. It said something like

The panel encountered a problem while loading
"OAFIID:GNOME_FastUserSwitchApplet."

Along with the error GNOME (panel?) asked if I wanted to delete the applet from the configuration. I don't need fast user switching so I told it to delete the applet from the configuration. When I got this on my test machine I Googled around a bit and did some testing and found that the applet isn't even installed on my machine; you think I would check this first, eh? If you want it you can install it then logout and login or restart or something. Like I said, I didn't do this, but sources say that this fixes the problem. It will also want to install gnome-system-tools.

I didn't to the following:
sudo aptitude install fast-user-switch-applet

Since I am not using (and don't want) fast user switching I'll just leave this out. I also want to disable the user's ability to hibernate, suspend, etc. Since I was having trouble making the buttons disappear and am not interested in digging more (it appears they're working on good way to do this) into it, and frankly I'd just rather have them login and logout as soon as possible, I just set the logout button to...logout.

I installed gconf-editor because I don't want to use gconftool2...but feel free.

sudo aptitude install gconf-editor

Then set the following and set them as mandatory (right-click on the entry):

apps → gnome-power-manager → general
  • Uncheck can_hibernate and can_suspend

apps → gnome-session → options:
  • Uncheck logout_prompt

Now when I click the logout icon on the panel or choose Quit from the system menu it just logs right out.

Web Browser
Occasionally I will need to take a look at a website while I'm on the server so for convenience's sake I'll install a browser...no I won't. Look, this is a server that I'm using to host other servers. It's a critical system and I've already installed X, GNOME, and other crap that adds to insecurity. I think my laptop will have to suffice if I need to lookup webpages while working on the system.

Installing VMware
Installing VMware Server (the free one) is a breeze...just make sure you get the current release (1.0.6 as of July 10, 2008). Just go to their website, www.vmware.com, register for a serial number, and download the software make sure to get the Linux Server tarball, not the RPM. Good to go.
Before installing VMware you want to make sure you have the dependencies and tools to compile the VMware modules. I did a quick Google search (cause I'm lazy) and found Ubuntu Tutorial's entry on installing VMware on Hardy Heron. Guess you can just go read that instead, eh? Since I'm running the server kernel I installed linux-headers-server instead of linux-headers-generic. You could of course have installed all these packages in the previous round of aptitude install, but I'd rather do it in steps.

sudo aptitude install build-essential linux-kernel-devel\
linux-headers-server xinetd



Reboot! Xinetd will start; you don't really have to restart if you don't want to.

To get the install going you've gotta extract the tarball you downloaded from VMware, descend into the directory it extracts to, then start the installer as the super user.

tar xvzf VMware-server-1.0.6-91891.tar.gz
cd vmware-server-distrib
sudo ./vmware-install.pl

I'm not going to walk through every single option you're presented with during the installation. For most people the defaults are all fine. I only changed the networking setup and told VMware that my virtual machines will be in a location other than the default. I have them residing on their own happy volume covered by a nice, cushy RAID5 array.

Once the install is done you should see it start the services and tell you it's all done, but before you can run the server console from the Ubuntu Server you just installed you need to link some libraries. I made the changes suggested at the Ubuntu Tutorial page and then started the VMware Server Console.

sudo ln -sf /usr/lib/gcc/i486-linux-gnu/4.2.3/libgcc_s.so\
/usr/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1

sudo ln -sf /usr/lib/libpng12.so.0 /usr/lib/vmware\
/lib/libpng12.so.0/libpng12.so.0
# then go ahead and start the console
vmware

That's it! Anything else you can check our Google and VMware for help. I'm getting bored of typing. =)

Dave.

2 comments:

Martin Mähly said...

Hello Dave, thanks for your informations which are outstanding because you provide context (why you are doing something) and background (real intention to help the reader).

There is one change I would like to suggest, according my recent googling: use aptitude instead of apt-get. aptitude is based on apt-get and has some advantages, of which the most important one is probably that it knows the difference between manually and automatically installed packages. So when deinstalling, aptitude can remove no longer needed dependencies automatically.

However, mixing apt-get and aptitude is not recommended.

Regards, Martin

Dave said...

Thanks for the input Martin. I've updated the post to use aptitude instead of apt-get.

I did a quick google search and found this page:
http://pthree.org/2007/08/12/aptitude-vs-apt-get/

It goes through some of the differences and advantages of aptitude (it is a year-old post, though). I also found a post that claims apt-get and aptitude are (now) both about the same; a lot of the problems apt-get used to have aren't there anymore. I don't know how true any of it is, but I do know a lot of people recommend Aptitude over apt-get.

Thanks.

Dave.