This post is more of a reference for myself than anything else, however I thought it might come in handy for some others.  It’s bastardised from the install.sh which comes with nventory and will configure an Amazon Linux AMI for you.

The install script below installs nventory, rubygems and nginx from source and everything else from either the Amazon repo or Epel.

This means that you can install and configure this system on the Amazon Free Usage Tier using the “tiny” Amazon Linux ( amzn-ami-2011.09.1.x86_64-ebs ) and get a complete inventory server and puppetmaster for a year at zero cost!

(more…)

Table of contents for Continuous Delivery of Server Configurations

  1. A New Hope…
  2. Deploy and Roll-back system configs with capistrano, mcollective and puppet
  3. Putting the butler to the test

The last two posts in this series have covered what the overall system will look like and how to ensure your puppet server is ready to receive the files from the SCM repo via capistrano – This post will cover setting up the test server using JenkinsCI and creating some tests.

We start by installing Jenkins.

(more…)

Table of contents for Continuous Delivery of Server Configurations

  1. A New Hope…
  2. Deploy and Roll-back system configs with capistrano, mcollective and puppet
  3. Putting the butler to the test

I’ve been playing around with Capistrano over the past few weeks and I’ve recently created a way to use the power of Capistrano’s “deploy” and “rollback” features with Puppet and MCollective to enable me to have complete control over the deployment of my system configurations. (more…)

Table of contents for Continuous Delivery of Server Configurations

  1. A New Hope…
  2. Deploy and Roll-back system configs with capistrano, mcollective and puppet
  3. Putting the butler to the test

OK, it’s May the fourth as I’ve started to write this and I couldn’t resist the title, but I hope that this first post in what I aim to deliver as a series of tutorials will help you move towards full testing, integration and deployment of your systems and turn what could be a five hour manual build and deploy routine into a single code commit.

(more…)

After reading the thread in the Devops-Toolchain Google Group (http://bit.ly/devops-vmth), I realised it was about time I dusted down Cucumber-Vhost and gave it a quick once-over.

The main addition tonight is way overdue and is the simple addition of a configuration file.  I chose YAML for the config file because XML is not a human readable format and the result is a configuration file which looks as follows:

# Configuration file for cucumber-vhost
#
# Change the settings below to reflect your environment

####  COBBLER ####
cobbler:
    server:       localhost # The server which is running the cobbler XMLRPC API

    port:          80          # The port number to connect to for accessing the API

#### LIBVIRT ####
libvirt:
    driver:       qemu      # The libvirt driver to use as documented at http://libvirt.org/drivers.html#hypervisor

    host:                       # The host to connect and launch the virtual machines (leave blank for localhost)

    type:         system    # How to connect to the hypervisor (see man virsh(1) for more information)
                                  # "system" connects to qemu as root, "session" connects to qemu as the current user.
                                 # Leave blank if using Xen as the driver

    storage_pool: default # The name of the libvirt storage pool to use

Once the configuration file is set up, you can run the usual:

rake features

and cucumber-vhost will launch your VMs based on the configuration and kickstart in Cobbler.

I’ve recently decided to take the plunge and move from Apache and Mod_WSGI to Nginx and FastCGI – I was amazed at how simple it was!

To get Edison up and running under NGinx as a fast-cgi Deamon, you just need to do the following:

(more…)

OK, so a few people heard that I was playing with RabbitMQ and MCollective and hinted (less than subtly I might add!) that a blog post might be in order, so here it is.  If you want someone to blame, look no further than @patrickdebois and @garethr :)

The original issue was as follows:

  1. I already use MCollective with ActiveMQ over STOMP, but the XML config format is a nightmare.
  2. I want to use LogStash but that uses AMQP and ActiveMQ doesn’t support that.
  3. I don’t want to have to run two message queuing servers on my network.

@ripienaar mentioned that he’d managed to get MCollective working with RabbitMQ’s new stomp plugin, and RabbitMQ is the AMQP server suggested by the logstash site.  This looked promising – could I really kill two birds with one stone?

The answer – I’m pleased to announce – is yes, I was able to kill two birds with one stone, and this is how I did it…

(more…)

*** UPDATE ***

Yesterday’s code didn’t work properly – The latest commit now has this working!

*** END UPDATE ***

OK, so we still don’t have a decent GUI yet (we’re working on it, honest!) but we do now have support for Kickstart/FAI/Unattend files to be delivered over HTTP via the API on Edison.

“How do I use it?!” I hear you ask… well, it’s pretty simple really and it will be even faster once we write the GUI.

Here’s how to get your Hamster kicking your systems into life…

(more…)

I’ve just pushed a load of code to Github for a project I’ve been working on in my spare time.

The project is named after one of the developer’s ex-hamster (it had to go back to the shop for being too violent, but we’d named the project by then!) and is designed to combine Change Management, Configuration Management, Auditing and integration with tools like Puppet through a DJango-based website and API.

(more…)

I’ve started to make some changes to the Cobbler tree to enable it to run on other linux distros than the RedHat family.

First up, Ubuntu Lucid!

Install the required packages:

aptitude install python-yaml python-cheetah python-netaddr python-urlgrabber

Get the source code from my git tree:

git clone git://github.com/proffalken/cobbler.git

change to the new directory and run the setup as root:

cd cobbler
python setup.py install

and there we are, Cobbler should now be running on your server!

There are some discrepancies and it’s not working 100% yet but it will install and run.

I’ll post some more information on getting the web interface up and running in the coming hours/days/weeks as I find the time! :)

Switch to our mobile site