Total Pageviews

Saturday, 8 February 2014

Chef

chef is A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
Want to try Chef? Get started with learnchef
Chef is a configuration management tool designed to bring automation to your entire infrastructure.
This README focuses on developers who want to modify Chef source code. If you just want to use Chef, check out these resources:

Installing From Git

NOTE: Unless you have a specific reason to install from source (to try a new feature, contribute a patch, or run chef on an OS for which no package is available), you should head to the installer page to get a prebuilt package.

Prerequisites

Install these via your platform's preferred method (apt, yum, ports, emerge, etc.):
  • git
  • C compiler, header files, etc. On Ubuntu/debian, use the build-essential package.
  • ruby 1.8.7 or later (1.9.3+ recommended)
  • rubygems
  • bundler

Chef Installation

Then get the source and install it:
# Clone this repo
git clone https://github.com/opscode/chef.git

# cd into the source tree
cd chef

# Install dependencies with bundler
bundle install

# Build a gem
rake gem

# Install the gem you just built
gem install pkg/chef-VERSION.gem

Contributing/Development

Before working on the code, if you plan to contribute your changes, you need to read the Opscode Contributing document.
You will also need to set up the repository with the appropriate branches. We document the process on the Working with Git page of the Chef wiki.
Once your repository is set up, you can start working on the code. We do use TDD with RSpec, so you'll need to get a development environment running. Follow the above procedure ("Installing from Git") to get your local copy of the source running.

Testing

We use RSpec for unit/spec tests. It is not necessary to start the development environment to run the specs--they are completely standalone.
# Run All the Tests
bundle exec rake spec

# Run a Single Test File
bundle exec rspec spec/PATH/TO/FILE_spec.rb

# Run a Subset of Tests
bundle exec rspec spec/PATH/TO/DIR 
 
from https://github.com/opscode/chef