The Official Ubuntu Book, 2e: The Ubuntu Server
What Is Ubuntu Server?
Installing Ubuntu Server
Ubuntu Package Management
Ubuntu Server Security
UBUNTU 4.10, LOVINGLY KNOWN AS WARTY WARTHOG, was the first public version of Ubuntu. Its installation media provided no obvious way to install the bare-bones OS without a full desktop environment. The system administrator crowds, easily irritable and feisty by nature, were greatly annoyed: They proclaimed Ubuntu was just a desktop distribution and sauntered back to their caves in contempt.
The next release of Ubuntu that came out, Hoary Hedgehog, rectified the problem and allowed for trivial installation of a minimal Ubuntu version suitable for servers. Yet the myth of Ubuntu as a purely desktop-oriented distribution stuck.
Luckily, the sentiment is just that—a myth. Ubuntu is a world-class server platform today, providing everything you'd expect from a server OS and with the human flavor that makes Ubuntu different. The dedicated hackers on the Ubuntu Server Team that tends to the minutiae of hardware support and testing mercilessly beat on the latest version of server software to make sure it's up to snuff for inclusion in the distribution, and the members of the team are available to users like you to field feedback, questions, and cries of anguish.
That said, setting up a server is no small task. Server administrators constantly deal with complex issues such as system security, fault tolerance, and data safety, and while Ubuntu makes these issues more pleasant to deal with, they're not to be taken lightly. The aim of this chapter is thus not to teach you how to be a system administrator—we could easily fill a dozen books attempting to do that—but to give you a quick crash course. We'll also highlight the specific details that set Ubuntu Server apart from other server platforms, offer tips on some of the most common server uses, and give you pointers on where to find other relevant information. Let the mischief begin!
What Is Ubuntu Server?
By far the most common reaction from users first encountering Ubuntu Server is one of utter and hopeless confusion. People are foggy on whether Ubuntu Server is a whole new distribution or an Ubuntu derivative like Kubuntu (only for servers) or perhaps something else entirely.
Let's clear things up a bit. The primary software store for Ubuntu and official derivatives is called the Ubuntu archive. The archive is merely a collection of software packages in Debian "deb" format, and it contains every single package that makes up distributions such as Ubuntu, Edubuntu, Xubuntu, Kubuntu, and Ubuntu Server. What makes Kubuntu separate from Ubuntu, then, is only the set of packages from the archive that its installer installs by default and that its CDs carry.
Ubuntu Server is no different. It depends on the very same archive as the standard Ubuntu distribution, but it installs a distinctive set of default packages. Notably, the set of packages comprising Ubuntu Server is very small. The installer will not install things such as a graphical environment or many user programs by default. But since all the packages for Ubuntu Server come from the same official Ubuntu archive, you can install any package you like later. In theory, there's nothing stopping you from transforming an Ubuntu Server install into a regular Ubuntu desktop installation or vice versa (in practice, this is tricky, and we don't recommend you try it). You can even go from running Kubuntu to running Ubuntu Server. The archive paradigm gives you maximum flexibility.
We've established that Ubuntu Server just provides a different set of default packages than Ubuntu. But what's important about that different set? What makes Ubuntu Server a server platform?
The most significant difference is a nonpreemptible server kernel with an internal kernel timer frequency of 100Hz instead of the desktop default of 1KHz. We'll spare you the OS theory: The idea is to offer some extra performance and throughput for server applications. In addition, the server kernel supports SMP and basic NUMA. SMP, or symmetric multiprocessing, is the code that allows you to use more than one processor in your server, and NUMA is a memory design used in some multiprocessor systems that can dramatically increase multiprocessing performance.
So what else is different in Ubuntu Server? Other than the server kernel and a minimal set of packages, not too much. Though Ubuntu has supported a minimal installation mode for a number of releases, spinning off Ubuntu Server into a proper derivative distribution is still a young effort, and many neat features are planned for the future but aren't available just yet.
Starting with Ubuntu Server 6.06 LTS, known as Dapper Drake, Ubuntu Server offers officially supported packages for the Red Hat Cluster Suite, Red Hat's Global File System (GFS), Oracle's OCFS2 filesystem, and the Linux Virtual Server utilities: keepalived and ipvsadm. Combined with the specialized server kernel, these bits already let you use your Ubuntu Server for some heavy lifting. Recognizing the wild popularity of the LAMP (Linux, Apache, MySQL, PHP) stack, the Ubuntu Server CD offers a LAMP installation option right at the boot screen. And there's a great lineup of upcoming features: Among other things, we're hoping to throw in a resource manager for cluster folks, automatically place system configuration files under version control, ship with out-of-the-box support for server farm monitoring and hard drive replication over the network, and provide an integrity checker for installed systems directly on Ubuntu CDs.