Opscode
Home     Cookbooks     Blog     GitHub     Tickets 

Installing Chef from HEAD

This document is focused on users who wish to get the latest development version of Chef installed for testing and development, or for the latest and greatest features that haven't been officially released yet. Developers who wish to contribute to the project are encouraged to read the README.rdoc in the GitHub repository.

Each released version of Chef is tagged in the Git Repository. You can work with a previous version's code by checking out the tag.

Version Numbering Style

Note we follow Linux kernel-style versioning. If the patch-level version is odd, its a 'dev' release, as installing from HEAD is certainly 'dev'.

Requirements

First, you'll want to designate a system for development and deployment. This is the place where you'll clone the repository and create the gems. It can be your local workstation, or it can be the Chef Server itself. You'll probably want to follow along with the "Preparing for RubyGems" installation documents on the main Installation page.

  • Git - the source is on GitHub, so you'll need to have Git installed for your platform.
  • RubyGems - we have Rake tasks for generating and installing the gems, and these instructions should work anywhere with RubyGems. We recommend installing RubyGems from source.
  • Rake - we like Rake, and use it liberally, install the rake gem.
  • RSpec - we do specs in rspec, install the rspec gem.
  • Cucumber - we do feature tests with cucumber, install the cucumber gem.
  • Gemcutter and Jeweler - we use jeweler for gemspec generation and may want to push to gemcutter, install these gems.

When installing the gems that are built from these instructions and using the Bootstrap Chef RubyGems Installation on Chef Server or Chef Client systems, other dependencies are handled as well such as CouchDB, RabbitMQ and Java. You can also install the these for a Chef Server manually.

Ubuntu Git Package

Ubuntu's git package to actually get usable git binaries installed is 'git-core', not 'git'.

Don't need RDoc and Ri?

By default, Gems install with the RDoc and Ri documentation available. You can disable this for gems you install by adding "gem: --no-rdoc --no-ri" to ~/.gemrc. This will save time on installation, too.

Install RubyGem Development Requirements

Some other gems are required to build the gems, but are automatically installed when we use rake install [#Installing the Gems]. If you want to have them available first:

Install Additional Gem Building Requirements

Git Repositories

Clone the ohai and chef repositories fresh from github. If you want the latest and greatest from Chef, you probably want the same from Ohai. You'll also need the Opscode mixlibs which are used in Chef and Ohai.

Clone Git Repositories

Installing the Gems

We're going to install the gems from the repositories checked out above. Each of these has gem dependencies that build on each other. This is the order which you should install the gems.

In each rake install, the respective gem was generated. We recommend setting up an internal RubyGems server in your environment to host the development gems, so you don't have to copy them manually to client systems for testing. Opscode provides a gems::server recipe that will help you set up a RubyGems server.

Install mixlibs

Ohai and Chef use some "mixin" libraries that Opscode wrote. We need to install these first or the Ohai and Chef gems will fail to build.

Install mixlib components

Install Ohai

Ohai needs to be installed as well so the Chef gems can be built.

Install Ohai

Install Client

For a chef-client, just install the chef gem, it provides the binaries and code needed to run Chef.

Install Chef

Install Server

If you are not using a RubyGems server, you'll want to install the Chef Server gems.

Install Chef Server

Configure Chef

The Bootstrap Chef RubyGems Installation procedures can be used to get the server configured. If you're planning to run systems on the development version, we strongly recommend a RubyGems server with Chef and all the dependencies available to ease this process. Or, if you're using Amazon EC2, build an AMI with the gems installed.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Dec 20

    Robert J. Berger says:

    Looks like gemcutter jeweler are also prerequisites to do a rake install for the...

    Looks like gemcutter jeweler are also prerequisites to do a rake install for the server. Got the following message:

    So before you do the rake install for the server:


Copyright © 2009 Opscode, Inc. All Rights Reserved.