On 15/09/12 12:22, Jonathan Clarke wrote:
> On 15/09/12 03:39, JaimeGago wrote:
>> No it's my bad the original email was indeed pretty explicit in its
>> body and you were indeed answering the original question, I guess my
>> only excuse if any is that the question wasn't copied in your answer.
>>
>> Since Puppet and Chef were explicitly called out, maybe we could get
>> someone from CFEngine?
>
> I'm not from the CFEngine *company* myself, but I can fill in with
> some updates on what's going on community-wise. I'll also forward this
> to Mark Burgess (CFEngine creator and CTO) and ask if he wants to join
> in and tell the story from the inside.
Ah, and since the original question was "what have you been up to?", I
guess I should at least explain why I'm familiar with CFEngine and what
I've been doing too :-)
I've been working on Rudder (
http://www.rudder-project.org). Rudder is
based around a web UI that aims to provide a simple workflow around
configuration management, and automatic reporting. A few typical use
cases could be:
* "I've written all this clever config management stuff, and I want my
non-CM-savvy co-workers to use it, but they don't have time to learn it
and sometimes they need to change a couple of settings. I want them to
be able to do that without being able to change the code."
* "I've got to comply to this set of rules that my boss/the company/the
government set. I think CM is the best way to do that, but I also need
an automatically generated report every week/month I can send them to
provide some feedback."
* "I'd like junior sysadmins to be able to look at the configs we use,
not change them quite yet, but still be able to deploy them to new
servers they build and check compliance."
You can clicky-clicky through settings in the web UI, then Rudder
generates a CFEngine config, to send out to the servers to manage. Thus
my involvement with CFEngine, which we use intensely - both to manage
the configs Rudder deploys (via Techniques, similar to the CFEngine
sketches I described in my previous message), and to manage a Rudder
server itself.
I've been working on preparing the very-nearly-ready 2.4 release of
Rudder, and in particular automating tests in the config & packaging
side of the tool. Now, automatic testing is pretty common, but it
becomes harder when you want to test a tool that manages a whole server,
or in fact several, and on several different OS which are very different
from a CM tool's perspective, and of course we have to build different
packages for. So I've been building a test suite that involves
continuously building packages, spawning VMs running different OSes,
installing the packages, running some tests (ie, test this config,
upgrade from version A to version B and check it works, etc), tearing
the VM down, etc, then getting the test results back into Jenkins. That
uses quite a bit of shell script magic and... libvirt.
Vagrant also came as an obvious possibility, but we found it easier to
automate with libvirt. We do have several Vagrant configs though, for
developers to work in a production-like environment, and for quick start
testing of Rudder (
http://github.com/Normation/rudder-vagrant).
Guess I'm forgetting loads of things, but that's a start to contribute
to the discussion. Won't be making it to devops days in Rome
unfortunately, but will be at Velocity in London - I'm assuming others
from this list may also be?
Jonathan