*** 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 recently ran into a problem with NSS-MySQL – or rather I ran into a number of problems with NSS-MySQL.

  • The first was that there are two libraries with almost identical names (libnss-mysql and nss-mysql) hosted in two different locations (sourceforge.net and savannah.gnu.org respectively) which do exactly the same thing (lookup users from a MySQL database).
  • The second was that all our legacy servers that use this method of authentication had been installed from source, however the key text that told me which version to use (sourceforge or gnu) had been removed from the build documents so I didn’t know which one I was meant to be installing.
  • The third issue (and this isn’t the final issue unfortunately) was that when I realised that the version we were using was the gnu.org one, I also discovered that the only one for which maintained packages were available was the sourceforce.net version.
  • The fourth (and last for the time being) was that the configuration file formats were completely different

At this point, it wasn’t looking too good…

Working closely with a Colleague, we also identified that although the users in the MySQL database were completely different to those found in /etc/passwd, many of the uids and gids matched entries in both.  This was because although all the account names for users start at 2001 as far as the system is concerned, the database userId field starts at 1.  I love legacy systems…

After three days trying to solve this, we were starting to wonder if it would be any quicker to redesign the database and just reassign the permissions across the 25TB of data that we hold for various accounts, then, we hit the solution.

libnss-mysql (the package available from EPEL and the version that is hosted on SourceForge) has to be the version of choice going forwards as we must be able to deploy this server without any human intervention in order for the build systems based upon cucumber-vhosts/hudson that I’ve discussed elsewhere on this blog to work correctly.  This is how we fixed the queries…

(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! :)

Table of contents for Cucumber Vhost

  1. Announcing “Cucumber-VHost” – Cucumber, Cobbler and Virtual Hosting all in one package
  2. cucumber-vhost goes for release 0.1!

I’ve noticed that some people have shown an interest in my cucumber-vhost project.

I’ve just made a few commits that now mean you have steps to tear down virtual servers as well as create them and, as a result, I’m calling this version 0.1 and releasing it for general usage.

There are still a few caveats – I’ve not tested it with any backend systems for libvirt other than kvm/qemu and I’ve not written the steps to confirm a server is up/responding to a give port – but it works and I have it successfully building and destroying VMs under Hudson using the rake plugin.

Please file all bugs on the github bug tracker so I can try and fix them.

(Special thanks go to clalance in #virt on irc.oftc.net for help with sorting out the storage stuff!)

I’m heading towards being able to create a Continuous Integration system for setting up and testing my config files.

This post consists of a few notes I’ve observed as I’ve been configuring KVM, Cobbler, Koan and Puppet in order to achieve this.

(more…)

EDIT: I am not involved in the remmina project, it just helped me out when I first created this blog post.  If you do need support on the project, I suggest you check out the official support forms.

 

Remmina rocks. One window with tabs for all your RDP, VNC, SSH and NX connections is awesome!

Here are some (very) brief instructions on getting it installed on Ubuntu Lucid: (more…)

Table of contents for Adventures with Mcollective

  1. Adventures with MCollective
  2. Mcollective on Centos
  3. Create a local repository for MCollective and ActiveMQ

One of the small issues that I’ve run into when deploying ActiveMQ/Mcollective is that there isn’t currently a repository for these packages.

If I get the resources, then I’ll try and set up a repository for both of these packages and their dependencies so that it’s easier to install, however for the time being you can create a local repo as follows:

(more…)

GitHub repo added!

May 2nd, 2010 | Posted by ProfFalken in DevOps | Linux | Open-Source - (0 Comments)

I’ve finally got around to creating a github repo and I’ll be checking all my puppet modules into this from now on.

The repo is: http://github.com/proffalken/proffalkensPuppetModules

There’s only a README there at the moment, but expect code to follow soon!

I’ve been playing with Puppet for some time now and creating the directory structure for modules as defined in the puppet best practice guide gets tedious after a while, so I threw together a simply base script that takes a single argument and builds the directory structure for you.

(more…)

Switch to our mobile site