[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Fab-user] idempotency contrib
From: |
Ronan Amicel |
Subject: |
Re: [Fab-user] idempotency contrib |
Date: |
Wed, 19 Oct 2011 13:13:57 +0200 |
Hi Jeff and everyone,
After writing several fabfiles myself, I felt the need to factor out a
number of commonly needed operations (creating files, users, etc.),
and I put them in a module that I called "fabtools".
I'm also a fan of idempotency (as found in more heavy-weight
configuration management tools like Chef), and I built an additional
idempotent layer in fabtools called "icanhaz".
The idea is that you can write declarative configuration requirements like this:
>>> icanhaz.deb.package('foo')
>>> icanhaz.user('bar')
I hope some of you will find it useful. It's available on GitHub, so
comments, bug reports and pull requests are welcome:
https://github.com/ronnix/fabtools
--
Ronan Amicel
http://topixtream.com/
On Tue, Oct 18, 2011 at 22:27, Jeff Schwaber <address@hidden> wrote:
> Hey folks,
>
> I'm new to this mailing list, so apologies if I'm in the wrong place
> or anything. =)
>
> I recently rewrote my fabfile that I use for a bunch of different
> projects, and noticed, as I was writing it, that I was doing a lot of
> little stuff to try to maintain idempotency so that I could run the
> script over and over when something went wrong. I thought it might be
> useful to push that out into a library, and so I did so, putting it in
> a module in the contrib directory in my fork of fabric. I haven't gone
> very far with it -- I built Directory and Symlink objects, and started
> work on a GitRepository object, since that's the majority of what my
> fabfile code uses, but before I went farther, I thought I'd find out
> what people think. The repo's below, and I'd welcome feedback on
> anything you think of. One thing I might like to refactor is to pull
> the tests out of the main test area and have a contrib test area.
>
> In so doing this, the only code of the current fabric project that I
> touched was the contrib.files code, where I added is_dir and
> is_symlink along the lines of exists, and refactored exists so they
> could all use some of the same underlying code. This doesn't change
> the exists API, just adds the two functions to the files API.
>
> https://github.com/freyley/fabric
>
> Thanks!
>
> Jeff
>
> _______________________________________________
> Fab-user mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/fab-user
>