Hacker News new | past | comments | ask | show | jobs | submit login
Fabric hits 1.0 (python.org)
144 points by jonknee on March 5, 2011 | hide | past | favorite | 21 comments



Changelog: http://docs.fabfile.org/en/1.0.0/changes/1.0.html

This is a major version, so note the backwards incompatible parts as well:

http://docs.fabfile.org/en/1.0.0/changes/1.0.html#backwards-...


I currently like pdsh (http://code.google.com/p/pdsh/) for doing remote sysadmin: it parallelizes very nicely, and I love being able to issue commands like "pdsh -w compute[000-100] yum update package" to manage hundreds of nodes at a time.

That said, I can see use cases for Fabric where you're implementing some complex logic in Python which you'd like to push out to your servers, rather than just doing simple shell commands or pre-pushing your scripts. But I can't tell how well Fabric parallelizes... being Python I'd expect it to be single-threaded :( , but I might be wrong.

Edit:typo


It's also useful once you get out of trivial shell-scripts and need things like sane error handling or data structures, shell chains or escaping, etc. I wrote something like pdsh in the early 2000s in Perl and almost always used it to launch scripts written in a real programming language for any non-trivial task - e.g. even that yum command gets tricky if there's any possible interactive prompting going on or you want to parse output.

Here's Fabric's parallelism ticket: http://code.fabfile.org/issues/show/19


oh, so bash is suddenly multi-threaded now? :)

python does multiprocessing just fine: http://docs.python.org/library/multiprocessing.html


bash may not, but pdsh is (I personally used dsh, which also multiplexes ssh connections) and the child processes do not bear the lack of multithreadness of the parents :)


Nice to see a new release, but there is still no official support for a parallel execution :(

There are some forks with a parallel support, but all of the ones which I have tried are pretty buggy / incomplete.

I have signed up for a Fabric PyCon sprint, hopefully I can help with adding / finishing the parallel support.


Am I missing something? I thought we're were going to get parallel execution, @task decorator and nicer control over 'env' in 1.0? There was a post about it just a few days ago. Right now I don't see anything from that in 1.0


You're referring to a fork of fabric that was posted to HN a few weeks ago: http://news.ycombinator.com/item?id=2250001

The author of that fork wants to contribute those changes back to the fabric project. But that did not happen before the 1.0 release.


That was a fork. While they'll hopefully get merged in, they're not currently in the official queue.


There are implementations of those features that are and have been in the official queue for a while.


I use Fabric both at work and for my own projects. It's really simple to use, and I especially like that each function automatically becomes a Fabric command. Makes it easy to do "fab test", "fab migrate"... etc.


Is Fabric basically capistrano implemented in python?


Well, no, it's different, but the idea is the same...


Fabric is a little more "purpose agnostic" than Capistrano, although both are perfectly acceptable for the same basic range of tasks.


Last time I used Fabric I switched to Capistrano, no need to use this Fabric since the language of your deployment scripts doesn't really matters.

Lately I want to experiment with Chef using blueprint [1]. What do you think?

[1]: http://devstructure.com/


I've been using a simple Fabric script from http://ericholscher.com/blog/2010/nov/8/building-django-app-... to automate Chef deploys. Blueprint tried to install a lot of nonsense on my box, and I decided that learning Chef proper would be a much better investment of my time.


DevStructure co-founder here, sorry to hear about your experience. Not sure when you installed blueprint, but we've recently open-sourced it and it's been ported to python. Should require minimal "stuff" to use it. Let us know if you have any questions or problems and again my apologies.

https://github.com/devstructure/blueprint


It was not a reflection on your product. FWIW, I tried it out about 3 weeks ago, using the setup.sh script. I'm not even in a position to critique Blueprint, as I was only migrating one single Linode instance to another, and not even anything complex.

Like you guys say, DevOps is hard.


Thanks for the clarification. We did open-source it last week (so you had an older version) and accounts are no longer required, you can download/build/run it. A lot easier to use should you choose to try again. If you need any help with the migration, we're always around the chatroom.


There are plenty of cases where deployment script language matters. Usually they revolve around having lots of tools/objects/etc already written in a language, and want to incorporate them into your automation system. This is how I found fabric to begin with.


If you are interested to learn chef-solo/vagrant, please see http://news.ycombinator.org/item?id=2292140 (which I just posted). I'm planning to write an e-book on the topic.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: