One of the biggest hurdles when getting started with eZ Publish is successfully installing the CMS. This process often fails because the system on which it is being installed is not configured correctly. If you do not have a helpful systems administrator handy it can be quite difficult to get past the initial steps.
There are a number of solutions that allow you to manage the configuration of computer systems. Two of the most popular are Puppet & Chef. These systems allow you to create "recipes" of how systems should be setup.
I've put together a eZ Publish module for Puppet that:
- Configures a system suitable to run eZ Publish
- Setup Virtual Hosts configured to run eZ Publish
- Sets up a Database
- Downloads eZ Publish
- Configures a kickstart.ini file
It's a bit like a guide to setting up eZ publish on Ubuntu but doesn't require you to manually follow the steps (and that you can keep under revision control)! It can also be rerun time and time again with the same result.
This doesn't help unless you have a system to apply it to and it would help if it was a system that you could trash if you wanted.
Vagrant is a very cool tool that manages VirtualBox virtual machines (VM). It will also provision (setup, configure) those VMs with Puppet (and Chef). This makes it an great complementary tool for testing your Puppet configurations. Vagrant can also be used to manage multiple VMs, allowing it to be used to test configurations with more than one system (e.g. separate systems running application and database).
I've configured a Vagrant setup that utilises the eZ Publish module for puppet module to create a single VM that will be setup to run eZ Publish (Community Project 2011.11).
Getting up and running
Once you have required software installed on your local system and the eZ Publish sample Vagrant setup checked out you can have a VM with the latest version of eZ Publish running by running one command - "vagrant up".
Running this for the first time will take a while as the base Ubuntu 10.4 LTS image needs to be downloaded. It's around 400Mb so depending on your connection speed it may take some time. The good news is that the base image is only downloaded once and can be used for other Vagrant managed VMs.
Once the "vagrant up" command has finished running visiting http://184.108.40.206/ will display the eZ Publish configuration wizard. A kickstart.ini file has been pre-configured with all the details to perform the installation.
Clicking "Next" will run the installation with the default parameters defined in the eZ Publish Puppet module. This will take a little time as the packages for the eZFlow Clean Site need to be downloaded and installed.
Quick guide to Vagrant commands
The VM can be shutdown by running "vagrant halt" and started again by running "vagrant up". reloading is as simple as "vagrant reload"
Once you are finished you can destroy the VM by running "vagrant destroy". Running "vagrant up" will setup new VM and provision it from scratch.
More detailed documentation can be found on the Vagrant site.
I've done my testing on a Linux system but you should be able to try this out on any system that can run ruby & VirtualBox. The Vagrant site has a guide on getting systems setup for Windows, Mac OS X, Linux, and Solaris.
I'd be interested to hearing any feedback you might have.