Are you managing too many Drupal installs manually? Aegir to the rescue! | Unleashed Technologies

Blog Banner

Do your Drupal installs look like this? All of them? We all know how dificult it is to keep 5 - 10, let alone 50+, Drupal installs up to date but it doesn't have to be that way. Intruducing Aegir. If you have worked with Drupal before in large environments, you will undoubtedly know the struggles for managing sites and deployments. The standard single site install done manually, which will give you the greatest flexibility, doesn’t scale well for on going management and maintenance of the site. Sure tools like Drush will reduce the workload, but you still have to manually run the commands yourself, for every site that is managed.

Aegir is a combination of two projects, Hostmaster and Provision. Hostmaster is a profile that provides a Drupal 6 based install a frontend for site deployment and management. While Provision is a drush extension providing the additional commands required to deploy and manage the sites and configurations required on a server. The installation and setup of a new Aegir install can be as simple as `apt-get install aegir` on an Ubuntu 11.04 install (after adding the repository). The current Aegir version of 1.2 has really come a long way from where it was just a few versions ago. On top of that, the Roadmap for version 2.0 has many added benefits planned, including but not limited to upgrading Drupal to 7, improved multi-server support, and improved clustering support.

In Aegir, you define Servers that run certain services (MySQL, Apache, Apache SSL, etc), Platforms that are the core multi-site installs of Drupal (can be just about any port of Drupal or extension using profiles), Clients who own Sites, and Sites that are the actual site that is to be hosted and added to a Server and Platform. When you setup a Platform, you install the global modules (/sites/all/modules), themes (/sites/all/themes), and profiles (/profiles) that are available to a site. Sites support local modules as any normal Drupal install does, along with setting an override settings file from the one Aegir generates and maintains.

The real power of Aegir is not necessarily the ease of deploying a new site but doing Platform upgrades. Normally when managing multiple Drupal installs (sites), you would have to preform the upgrade manually to every site and make sure it doesn’t break anything, as well as updating any installed modules. With Aegir, you would create a new Platform with all the updates done. Then you would run a migrate task on each Site you wish to update. During the migration process, Aegir will copy the Site’s files and configurations over to the new Platform. If at any point during the migration something should fail, Aegir rolls back to the original Site install. Now the best practices process would be to test the update before you run it on a production Site. Well, Aegir has a Clone task that will, you guessed it, clone a Site to a new Platform for you to test the update process with. Once you are happy with the process and results of it, you can run it on the production Site.

One of the most important features of Aegir is the extensionality of it. Because Aegir is based off of Drupal, you get all the functionality that any Drupal site has. Aegir fully supports Contributed Modules to extend and improve the core functionality. There are several additional modules already, including one that integrates Aegir with Ubercart, providing the ability to sell hosting sites and automatically deploy a base install once the order is completed.