Ubuntu Hardy Heron Slices

Latest Article:

Basic MySQL server tasks

Even the most basic MySQL server installation for Linux will have you performing basic administrative tasks like creating users and granting permissions. We look at some of those tasks here.

Ubuntu 8.04 (Hardy Heron) LTS is a significant release - including support until April 2013 and up-to-date packages, Ubuntu Hardy will be a popular and sturdy choice for many sysadmins.

These Ubuntu Hardy Heron tutorials take you from a 'barebones' Slice to a secure, up to date and quick server in very little time.

Ubuntu Hardy:

Ubuntu Hardy setup - page 1: So you have your new, or reinstalled, Slice with Ubuntu Hardy as the OS. Let's get on and secure it.

Ubuntu Hardy setup - page 2: From the previous article, we now have a secured Slice. Let's move on and update the Slice and install some essentials.

How to serve multiple domains: A commonly asked question is how to serve multiple domains. Let's take a look at the processes involved.

Log rotation:

Understanding logrotate on Ubuntu - part 1: It's no fun when log files grow out of control. In this two-part series, learn how to use logrotate to keep those logs in check.

Understanding logrotate on Ubuntu - part 2: In this second part of the logrotate series we look at how to set up rotation for virtual host logs, as well as some troubleshooting techniques.

Ubuntu Hardy and failover IPs:

Failover IPs and High Availability explained: A popular Slicehost service is the ability to have failover IPs - allowing for High Availability setups to be created. Let's look at what this actually means.

Slice setup and Heartbeat installation: Now we can look at setting up our Slices for HA by installing Heartbeat. This article looks in detail at the configuration files.

Ubuntu Hardy and Django

Django Installation: This article examines three different ways to install Django on your Ubuntu Hardy Slice. One uses the aptitude package manager, one uses the source code and one looks at getting the latest build via subversion.

mod_python Installation: Now we have Django installed, we can move onto installing mod_python (and apache) to serve our application.

Using mod_python to serve your application: Let's move on and look at setting up Apache to use mod_python to serve our application.

mod_wsgi Installation: Now we have Django installed, we can move onto installing mod_wsgi (and apache) as an alternative to mod_python in serving our application.

Using mod_wsgi to serve your application: We've installing mod_wsgi (and apache), so let's look at setting up our vhost file to serve our application.

Ubuntu Hardy and MySQL:

Installing MySQL server on Ubuntu: We look at installing MySQL on Ubuntu and getting it running with a database and a user to access it.

Configuring MySQL server on Ubuntu: We continue our MySQL server setup for Ubuntu by looking at configuration options to try and ensure the server doesn’t just run, but runs smoothly.

Basic MySQL server tasks: Even the most basic MySQL server installation for Linux will have you performing basic administrative tasks like creating users and granting permissions. We look at some of those tasks here.

MySQL with Rails and PHP options: Installing MySQL with Ruby on Rails and PHP integration is a simple process using the aptitude package manager.

Ubuntu Hardy and PostgreSQL:

Installing PostgreSQL: Installing PostgreSQL on your Ubuntu Hardy (LTS) Slice is very easy using the aptitude package manager. Let's see how.

Ubuntu Hardy - Ruby on Rails and PHP integration with PostgreSQL: Now postgreSQL has been installed on our Ubuntu Hardy Slice, we can look at getting our language/framework of choice to integrate with the database.

Introducing PostgreSQL Access Control : Now PostgreSQL is installed we need to take a moment to look at the important concept of access control. This concept is key to future articles and working with PostgreSQL in general.

PostgreSQL - local connections as postgres: Now the basics have been covered we can connect to the database server using the 'postgres' user. We'll use a tool named psql.

PostgreSQL - creating and deleting roles: Let's take a look at creating and deleting roles in PostgreSQL. Once this skill has been learnt, adding and deleting roles is simple via the command line.

PostgreSQL - creating and databases: Now we know how to add and delete roles within PostgreSQL, we can move into creating and dropping databases. let's take a look.

PostgreSQL - making connections #1: So now PostgreSQL is installed, we can take an in depth look at making connections to the database.

PostgreSQL - making connections #2: Let's continue with our journey into making local and remote connections with PostgreSQL.

PostgreSQL - making connections #3: Finishing the discussion about connections, we can take a look at security and how we can tighten up PostgreSQL with regard to remote connections.

PostgreSQL -Creating and dropping tables : Let's start looking at how we can manipulate the DB by seeing how easy it is to create, drop and rename tables.

PostgreSQL - Working with columns and rows: Continuing working with the DB we can now move onto working with columns and rows.

Ubuntu Hardy and Ruby on Rails:

Ruby on Rails: Our Ubuntu Hardy Slice is now ready for a Ruby on Rails stack with subversion and Postfix support.

mod_rails installation: Passenger (mod_rails) is an exciting and very easy to use method of serving your Ruby on Rails application.

Using mod_rails to serve your application: Now passenger is installed, let's see how to serve our Ruby on Rails application.

Thin web server for Ruby: Thin is a well established method of serving Ruby on Rails applications. Let's look at the installation and configuration of thin.

Apache, Rails and Thin: Now we've installed and looked at configuring the thin web server, let's create an Apache vhost to proxy our requests.

Nginx, Rails and thin: Creating a virtual host to proxy requests to the thin web server is very simple. Even easier then using mongrels.

Mongrel and mongrel_cluster installation: Mongrels are one of the original ways of serving a Ruby on Rails application using a 3rd party server. Let's look at the installation.

Apache, Rails and mongrels: Now we have mongrels and mongrel_clusters installed, we can move onto create an Apache vhost for our rails application.

Nginx, Rails and mongrels: Creating a virtual host to proxy requests to our rails application is very simple. Using a mongrel cluster has never been easier.

Ubuntu Hardy and email:

Email - Preparing the Slice: It is vital the Slice has the basics such as the hostname and Reverse DNS correctly set before we configure any sort of mail service.

Postfix - Installation: Now we've set the Slice basics, we can move onto installing postfix. This MTA (Mail Transfer Agent) is the base package of all our mail needs.

Postfix - basic settings in main.cf: Let's move on and see what the main.cf file contains and how we can change some of the settings for easier administration.

Postfix - MX records and receiving email: Let's move on and allow the Slice to receive email for our main domain. To do this we need to add some DNS records and ensure port 25 is open in the firewall.

Postfix - using telnet to test postfix: Using mail clients on our workstation to send mail to the server is fine, but let's use telnet to investigate the postfix responses in detail.

Postfix - checking for an open relay: Running an open relay means anyone can use your mail server to send mail. Let's check the postfix install is not running an open relay.

Barebones Postfix install for Ubuntu: A barebones set of instructions for installing Postfix. Aimed at experienced admins who just want to set up a basic postfix install to send email from a slice.

Ubuntu Hardy and nginx:

Installing Nginx via aptitude: Using the 'aptitude' package manager to install Nginx is very simple as it takes care of any dependencies and init scripts.

Installing Nginx from source: Although Ubuntu Hardy includes Nginx in its repositories, compiling from source will ensure we have the very latest version.

Adding an Nginx init script: Installing Nginx from source does not create an init file. Let's rectify that so Nginx automatically starts on a reboot.

Nginx from source layout: Adjusting the default layout created when installing Nginx from source allows for much easier administration on the vhosts.

Nginx Configuration: Whether installed from the package manager or from source, we can take a look at the default nginx.conf file and see what can be improved.

Nginx Virtual Hosts #1: Now Nginx is installed and running we can configure it to host multiple sites by creating virtual hosts.

Nginx Virtual Host Settings: Continuing from the previous article, we can now look in detail at more of the settings available to us when creating a vhost.

Ubuntu Hardy and Apache:

Apache and PHP install: Installing Apache 2.2.8 and PHP 5.2.4 on an Ubuntu Hardy Heron Slice is simple using the 'aptitude' package manager.

Apache Configuration Layout: Ubuntu Hardy Heron uses a 'Debian' style layout for the Apache install. Let's look at what that means.

Apache Configuration #1: Now we can take a look at the main Hardy Heron apache2.conf and ports.conf files and see what the settings mean and what effect they have.

Apache Configuration #2: Continuing from the first Apache configuration article, this one looks at some further settings in the main apache2.conf file.

Apache Virtual Hosts #1: Now Apache is installed and running we can configure it to host multiple sites by creating our own custom virtual hosts.

Apache Virtual Hosts #2: Continuing from the previous article, we now look in detail at the settings we can use in the vhosts file.

Barebones apache install for Ubuntu: How to set up a basic, no-frills apache server. Recommended for experienced admins only.

Enabling and using apache's mod_status on Ubuntu: Apache's mod_status module allows it to display a web page containing statistics about the web server's current state, including worker processes and active connections.

Ubuntu Hardy and Apache Tomcat:

Ubuntu Hardy - Installing Apache Tomcat: Installing the Apache Tomcat server for Java servlets and JSP on Ubuntu Hardy.

Network Time Protocol

Using NTP to sync time on Ubuntu: Keeping your Ubuntu system's date and time accurate is easy to do using NTP.

Ubuntu Hardy and Munin:

Installing munin on Ubuntu: Anticipating problems and resource shortages on a slice can be more valuable than fixing them after they've happened. A monitoring tool like munin lets you watch your slice's resource use over time. The graphs will highlight issues before they cause downtime or bandwidth quota overages.

Munin configuration and testing on Ubuntu: This article continues the installation and setup of munin on a single slice. It explains how to determine or change the URL used to access munin's reports and then check to make sure those reports are viewable and being updated.

Installing additional munin nodes on Ubuntu: Following up on the article about installing a munin master slice, if you want to monitor additional slices you'll need to install a munin node service on each.

Enabling munin node plug-ins on Ubuntu: Munin uses plug-ins to determine what data is gathered and reported. It includes several plug-ins for the types of data most people would be interested in, but not all of those plug-ins are enabled on a fresh installation.

The Kernel

Downloading and using kernel source code ( and newer) on Ubuntu: If you know you need to get your kernel source (or at least its headers) for a kernel version and newer, you can find instructions to do so on Ubuntu here.

Please feel free to request articles or comment with any suggestions or ideas of your own.