4 ms·
I've look around shortly (github page, website) and I couldn't find anything so I'm going to ask what I think is the obvious question here: Why not Chef? Why
by mitchellh 16y ago
I've look around shortly (github page, website) and I couldn't find anything so I'm going to ask what I think is the obvious question here:
Why not Chef?
Why not Puppet?
Why not X?
Babushka looks very cool, don't get me wrong. But I'm curious about the above questions.
- hakunin 16y agoI happened to choose Sprinkle for the reason that I'd choose Babushka if I knew it was in mature-ish state already. Chef is twisted, elaborate, and complex initial setup effort, with servers and clients, and books of documentation. I'd better spend the time learning shell scripting itself. Puppet/Moonshine has the type of syntax that doesn't fit me as a ruby developer. X - there is no X really. Not many options out there. Theoretically you could do everything with pure Capistrano, but that's not much different than manual shell scripting yet again. However I'm not the author of Babushka, this is just my take on your questions.
- ben_h 16y agoIt's a really good question, and one I probably should answer more directly on the website and in the README. As I wrote above, I have a lot of time for these other tools—in fact the creators of sprinkle (Marcus Crafter) and deprec (Mike Bailey) are both mates of mine here in Melbourne, Australia—and I don't want to just duplicate their work. I'm trying something different here. Deployment is definitely still important to me with babushka, but I'm trying to build a more general tool that makes it as fast and pleasant as possible to automate getting to some end goal. And that's one of the other differences—babushka is goal-oriented, not task-oriented. Unless there's some specific incompatibility, you can install babushka on (for example) any Mac in any state with this bash -c "`curl -L babushka.me/up`" And then running this babushka homebrew Will get you all set up with homebrew. But what it does is achieve the end goal of having homebrew set up—which might mean doing nothing, or cloning a git repo, or possibly just doing a `git reset --hard` to drop a binary in place. It depends on the system. The upshot though, is that if you're working on some other problem and a new colleague needs homebrew, you can run one command and you're done, instead of getting sidetracked for 15 minutes. In focusing on that, I sacrifice usability in other areas—for example, right now there's not really any such thing as an unattended run using babushka, because most complex dep trees require user input at runtime. It's still very much a hands-on process. And that's cool with me—there are already tools out there that solve those problems, and solve them well. I'm looking at working on deployment with babushka more with @glenmaddern, @dgoodlad and some other Melbourne hackers soon. But I'm very conscious of all the existing tools out there, and I'm a strong believer in deferring to the right tool for the job whenever possible. So I'm looking to integrate with existing tools where it makes sense, and solving old problems in novel and awesome ways whenever I can. :)