Chef Omnibus Beta


Adam has been working for some time on a new packaging project we call
omnibus [1]. The goal is to provide a single installer that is as
simple to use as possible and providing all the necessary
dependencies. The build system that is omnibus goes all the way with
this, using clojure to build everything needed (even autotools) for
the target platform. The product then gets bundled up as a deb, rpm,
and binary wrapped in a shell script. If you feel strongly about being
able to manage your software installation with native packaging tools,
you will find the omnibus install there. Note though, that we install
into /opt because we ship a full software stack and want to avoid any
possible conflicts with other software. If you don’t want to involve
the native packager, the shell script will install itself. We hope
that in the future this will make installation on Redhat systems much
simpler than maintaining RPM repositories for all of the
distributions, and provide a cross-platform installation method that
is more stable than installing from Rubygems because you will have the
same tested version of Ruby everywhere.

We have a working chef client installation for the following platforms
for both 686 and x86-64 architectures:

Debian 6 (Lenny)
Ubuntu 10.04 (Lucid)
Ubuntu 11.04 (Natty)
EL 5 (Redhat, CentOS, etc)
EL 6 (Redhat, CentOS, etc)

You can test this install out by following these steps:

  1. Download:
  2. Take a look at it
  3. Run it as root


curl | sudo bash

This will download a small shell script that will grab the correct
omnibus package for you from our S3 repository and perform the
installation. I’d love to hear what you think and how it works. File
tickets for bugs on against the Chef
project, with the Packages component and add ‘omnibus’ as a tag. The
second two options are available on the bug creation form. Bring up
any issues for discussion, like filesystem paths or client
configuration here on the mailing list.

Keep in mind that we are shipping a lot of isolated code, including
our own copy of rubygems. So for instance if you want to use a gem in
a chef recipe, you have to install it this way:

Install a rubygem so the Omnibus installer can use it

gem_package “rspec” do
gem_binary "/opt/opscode/embedded/bin/gem"
action :install

We’re working on an omnibus installer for the full Chef Server as
well. Stay tuned for updates.

Bryan McLellan | opscode | senior systems administrator
© 206.607.7108 | (t) @btmspox | (b)