A Dapper Drake in Your Server Closet?
Ubuntu's Debian-derived Dapper Drake Server Edition has a lot going for it, but look out for some curious installation options and documentation shortcomings.
Yes, I know you're sick of hearing about Ubuntu. Ubuntu this, Ubuntu that, everyone must love Ubuntu or else. Don't run away screaming just yet, because there are good reasons for all the Ubuntu buzz. The first one is they have an excellent and productive PR machine. This is a good thing, and there is no reason other Linuxes cannot follow suit. Don't whine about Ubuntu getting all the attention, because anyone can email or phone some journalists and get something going.
The second reason is they are doing a lot of interesting and inventive things:
- LiveCD with one-button hard disk installer
- Nicely customized, single-CD installation
- Large friendly user community
- Up-to-date packages
- Shiny new server distribution
- Shiny new release for UltraSPARC
- Officially certified for DB2 and MySQL
The current release, Dapper Drake, is called Ubuntu 6.06 LTS, for "Long-Term Support." This means it will receive security updates for five years. (Canonical Ltd., Ubuntu's parent company, and its partners also offer paid commercial support.) With this release Canonical introduces its first separate server edition. It comes with a pre-fab Linux, Apache, MySQL and PHP (LAMP) stack, packages appropriate for a server and "server" kernels. Just like "real" Debian, the official release includes only genuine Free software. Non-Free software is available in separate, unsupported repositories, which makes it easy for users to choose and to control what goes into their systems.
First, the good news. The pre-fab installation options are great. Choose either the server installation or the LAMP installation. Answer a few questions, then go have a nice cup of tea while it finishes. The remainder is not completely hands-off, because you'll have to remove the CD before it can reboot and finish up. But it goes quickly. My test server is an old Celeron 333 with 256 megabytes of RAM and a 10-gigabyte hard disk. Almost laughable by modern standards, but it's still a good machine.
It installs with no running services, with two exceptions: if you install the LAMP package, Apache will be running after installation on port 80, and MySQL listening on localhost:3306. But nothing else -- no weirdo RPC or portmap stuff, no SSH, no inetd or xinetd, no spyware phoning home. Any other services you want have to be turned on.
One minor nit is the installer assumes networking is configured via DHCP. On a server? Mmmkay. You can quickly get to a screen for manual network configuration by hitting "cancel" on the DHCP screen.
It installs with a minimum complement of packages, totaling around 425 megabytes. Even with the LAMP stack it weighs in at only 557 megabytes on my test system. This is not intended to be a bloaty general-purpose server with everything needed to make everyone happy, but a base system to build on.
Some of the package choices seem a bit odd, like reiserfsprogs and xfsprogs -- the default installation gives you ext3; pcmciautils, which is for laptops; wireless-tools and wpasupplicant, for wireless interfaces; and the ALSA sound system. Most servers don't even have soundcards. But anything you don't want is easy enough to remove.
As nice as Dapper server edition is, it suffers from poor installation documentation. Everything is hunky-dory as long as you stick to the prefab menu options, but trying to do a custom installation is the path to madness.
It includes the Debian Installation Manual on the installation CD, warmed-over for Ubuntu, in the /doc folder. This is an excellent manual, but it doesn't cover the Dapper installation menu. Hitting the various F-keys after booting up the installation CD presents help screens listing a number of boot-time options that don't work. You don't even have a boot command line until you hit F6 "Other options" on the initial installation screen, which to me does not say "bring up boot command line". Hitting F6 once displays a number of default command-line boot options. None of the help screens say what these are for, or which ones are safe to change or delete. The Server Guide does not help with this either. Hitting F6 twice, again which is not documented, brings up a little "Normal mode/Expert Mode" submenu. This actually works, so if you want Expert mode use this. In Expert mode you'll have excruciatingly complete control.
According to one of the Help menus, you should have options like "expert", "server", and "server-expert" to enter on the boot command-line. Additionally you should have two kernels to choose from: linux-image-server and linux-image-server-bigiron. If I entered any of these and deleted the default options, the installer failed to boot with a kernel panic. If I added them to the default boot options, they were ignored.
Ubuntu's server edition comes with two "server" kernels, linux-image-server and linux-image-server-bigiron, though my attempts to select the bigiron kernel failed, which is for systems with 8 CPUs or more. What makes them server kernels? According to the exasperatingly scanty documentation, they are "tuned differently than the desktop kernels (providing better performance for server applications)." I suppose a person who really wanted to know the difference could install them, then examine the /boot/config-* file. I think some nice detailed release notes explaining what's different in these kernels would be lovely.
Lighting the LAMP
Having a prefab LAMP setup is great. Even on Debian installing the four separate components is a fair bit of work. On my old Celeron the installation took less than twenty minutes. In another 30 minutes I had a basic Web site up and running. The road map for Ubuntu server edition promises more integrated server packages, plus certified hardware.
I don't know if I have a special blind spot when it comes to Ubuntu, even though I use it daily, but when it comes to finding Ubuntu-specific documentation it drives me bats. It seems chaotic and incomplete. I think the Ubuntu team have the right idea -- make polished distributions with easy, sensible defaults, and that are still completely customizable like any Linux. Adding sane, complete, easy-to-search documentation is something that will really set Ubuntu apart.
Do You Trust Ubuntu On Your Servers?
This is a good question. Ubuntu uses up-to-date packages, instead of moldy old goo like Debian Stable or Red Hat Enterprise Linux. Presumably this incurs increased security and stability risks. I have no problem with recommending it for LAN servers and low- to -medium important Internet-facing servers. Pay attention to your border and application security, and keep your systems updated as wise admins always do. Most importantly, remember that ease-of-use does not mean it's OK to be ignorant.