Holistic data-center management and automation tools are unusual and powerful tools. As a result they can often be costly and complex to implement. Not so OpenQRM, a free and open source pluggable framework for automatic application deployment, management and monitoring. It's also simple to install and implement, as you'll see in this tip.
OpenQRM is data center "glue". It allows centralized management of the various components that make up a data center configuration:
- Operating systems
The server allows the automated management and deployment of those components. The OpenQRM keeps track of kernel images, operating system snapshots, storage pools and manages high-availability relationships. It supports a wide range of virtualization technologies including KVM, VMWare, Citrix-Xen, Xen, and Linux-VServer and allows the migration of hosts from physical to virtual and back even across different virtualization technologies. It also performs automated network mapping and creation of Nagios configuration, automated high availability, provisioning via server images (and integration with the configuration management tool Puppet) and take snapshots of existing servers and deploy them.
OpenQRM also provides a single management console and solution to managing all your hosts and comes with a collection of plug-ins and a fully featured API that allows you to integrate to other tools. The advantage of the pluggable architecture is that you only need to install the components you require.
OpenQRM can be installed via a tarball, or Debian and Ubuntu DEB packages files, or Centos, Fedora, and SuSE RPMs. Packages for these distributions are available for both 32- and 64-bit architectures.
For this example, I'm going to walk you through installing OpenQRM on an Ubuntu server. To keep things simple, use a fresh install or virtual machine for OpenQRM. We also need to install some prerequisites: Apache 2, PHP 5, a database server (we're going to use MySQL but OpenQRM also supports PostgreSQL, Oracle, or DB2), the Syslinux boot loader and the PHP ADO driver. We're also going to install DHCP and TFTPD servers so we can install some additional plug-ins to manage these services.
On Ubuntu we can use the apt-get command to install these.
$ sudo apt-get install apache2 php5 php5-mysql mysql-server libphp-adodb syslinux dhp3-server tftpd-hpa
Next, we're now going to download and install the latest version 4.5 of the OpenQRM server. (A full list of the available OpenQRM downloads.)
$ wget https://sourceforge.net/projects/openqrm/files/openQRM%204.5/ openqrm-server-4.5-ubuntu804.amd64.deb/download
We're also going to install three plug-ins that allow the server to manage DHCP, DNS and TFTP services. These are also required to allow OpenQRM to provision hosts and we're going to use them as examples of how to configure OpenQRM plugins. (A full list of OpenQRM plug-ins.)
$ wget https://sourceforge.net/projects/openqrm/files/openQRM%204.5/ openqrm-plugin-tftpd-220.127.116.11-ubuntu804.amd64.deb/download https://sourceforge.net/projects/openqrm/files/openQRM%204.5/ openqrm-plugin-dns-18.104.22.168-ubuntu804.amd64.deb/download https://sourceforge.net/projects/openqrm/files/openQRM%204.5/ openqrm-plugin-dhcpd-22.214.171.124-ubuntu804.amd64.deb/download
From the OpenQRM download site there is also an "entire" package available that contains the OpenQRM server and all the available plug-ins. Also available is a VMWare Applicance with OpenQRM installed.
Let's now install the server and the plug-ins.
$ sudo dpkg --install openqrm-server-4.5-ubuntu804.amd64.deb openqrm-plugin-dhcpd-126.96.36.199-ubuntu804.amd64.deb openqrm-plugin-tftpd-188.8.131.52-ubuntu804.amd64.deb openqrm-plugin-dns-184.108.40.206-ubuntu804.amd64.deb
The dpkg command will install the server, create a database for you and start the server. The default installation assumes your database server has no password defined. You can change this (and the database type) by editing the openqrm-server.conf configuration file. By default this is installed into the /usr/lib/openqrm/etc directory. Once OpenQRM is installed you can edit your database configuration and settings.
Now you can start, stop or restart the server with the openqrm-server init script.
$ sudo /etc/init.d/openqrm-server restart
After we've installed OpenQRM we can now browse to the console (replacing the host name with the name of the host you installed OpenQRM on). You will be prompted to enter a username and password. The default installation creates a user called "openqrm" with a password of "openqrm."
Once we've signed in we want to change our default password. Click on the "openqrm" link in the top right-hand corner of the console. This will display the Account box in which we can change the default password. We can also add additional users using the Add User tab.
Now let's enable and start the plug-ins we've installed. To do this click on the Plugins > Plugin Manager link in the left-hand menu. Select the plug-ins we've installed and then click the "Enable" button (or click on the icon in the "Enabled" column). When the plug-ins enable process is completed then select all the plug-ins and click the "Start" button to start them (or click on the icon on the "Started" column).
Each plug-in will now have an "About" link and optionally some configuration under the Plugins menu.
Where to from here?
Now you have OpenQRM installed you can start using it. The next steps should be to add any additional plug-ins you need to manage your environment. For me this is the VMWare, Xen, Nagios and the LVM storage plug-ins. You then need to create storage locations to hold the images and kernels you want to manage and then start adding servers to your environment.
You can then follow the instructions from the Working with OpenQRM documentation to get started.
ABOUT THE AUTHOR: James Turnbull works for the National Australia Bank as the manager ofth e CERT (Computer Emergency Response Team). He is an experienced infrastructure architect with a background in Linux/Unix, AS/400, Windows, and storage systems. He has been involved in security consulting, infrastructure security design, SLA and service definition and has an abiding interest in security metrics and measurement. James is also involved in the Free and Open Source Software community as a developer and contributor.