Git Product home page Git Product logo

chef2puppet's Introduction

Chef2Puppet

This is a mechanism for converting Chef cookbooks to Puppet classes and modules. It is intended to work with Chef recipes built largely using the DSL without resorting much to other Ruby code. It is pretty functional now and generates Puppet classes with mostly correct syntax. The output is a complete Puppet module directory structure. You will definitely need to hand edit the resulting Puppet code, but probably not much.

How it Works

The script sets up a dummy environment in which the Chef DSL can be evaluated. Rather than doing anything, the evaluated code simply prints out Puppet(ish) formatted classes that can then be edited by hand to make them correct. The goal is that you will need to do a minimal amount of work on the output to make it clean, but since Chef lets you use all the power of Ruby it's too large a task to capture all possible intentions.

Output is all into a directory structure than can be copied to the Puppet modules directory, including the original files and templates. Inside of templates, an attempt is made to substitute node attribute calls into Puppet-compatible ones.

The converter will attempt to download remote HTTP urls into the correct output location in the Puppet module using Ruby's Net::HTTP module.

chef2puppet's People

Contributors

relistan avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.