[chef] Re: Any experiences building on top of Chef?


Chronological Thread 
  • From: Ranjib Dey < >
  • To:
  • Subject: [chef] Re: Any experiences building on top of Chef?
  • Date: Tue, 11 Jun 2013 08:18:03 -0700

3 years before i had moved from puppet to chef specifically for this reason (albeit there are other reasons, but this was the  main one). Extending chef is much easier. There are  quiet a few projects which is built on top of chef . Infochimp's ironfan, Dell's crowbar are examples . 

Chef servers REST interface is pretty decent . Low level domain objects related apis are also good, Though they are not perfectly idiomatic (like Chef::Node.list returns a hash) , but there are wrappers (like ridley) which provide a more idiomatic layer on top of chef. this means you can build any webapp easily chef aware. 
knife is another good component that lets you glue together existing command line tools and build your own command line tools on top of it. knife also has a rich set of cloud specific extension that you can reuse.

Over the last three years I have integrated chef with various webapps (mostly rails, but java bindings are also straight forward, and you can see examples on github, theres an android app also), as well as used the knife interface for building command line tools for deployment strategies (like blue/green, canary release) that can be used from workstations as well as CI server.

So, in short depending upon your use case u'll be using any or all of those approaches, but all of them are widely explored and exploited :-) . 
Specifically for reducing the setup efforts , you can use either bundler / Gemfile and have example knife.rb on your wiki (this will be easier to do) which your QA's can refer. Or you can actually chefify the workstation. I have done this for linux , but i know there are ample people who uses chef to automate their own laptops..

best
ranjib



On Tue, Jun 11, 2013 at 5:32 AM, Jeppe Nejsum Madsen < " target="_blank"> > wrote:
Ohai,

I would be interested in hearing how people are building tools on top of Chef. Basically I'm thinking an orchestration layer with simple tasks such as "spin up a new qa environment with latest build", "shutdown all dev environments" etc.



We have all the low level components done with Chef. And while everything works using e.g. knife commands, it would be nice to shield e.g. QA from having to install chef, clone repo, remember long command lines etc.

So, are there any good tools for these scenarios? If you've built your own, how did you approach it it? Using knife, the Chef gem or the Chef REST Api?

/Jeppe




Archive powered by MHonArc 2.6.16.

§