The importance of the Chef DSL is abstracting away common system interactions and most importantly, all the edge cases that come up. Whatever you are automating, you're going to be installing packages, starting services, and creating configuration files. Everyone should not need to re-invent that wheel, nor suffer finding the same Ruby GC bug when running a certain IO method.
By design, Chef fully expects you to leverage Ruby if you are operating in an environment of any complexity. Herein it differs from some other configuration management tools which strive to model everything you would want to manage. We (I am a Chef developer) often refer to our resources as primitives, the building blocks with which you code your infrastructure.
By design, Chef fully expects you to leverage Ruby if you are operating in an environment of any complexity. Herein it differs from some other configuration management tools which strive to model everything you would want to manage. We (I am a Chef developer) often refer to our resources as primitives, the building blocks with which you code your infrastructure.