yet.org

Crowbar

Crowbar is an Open Source solution to quickly provision new services from bare metal servers.

Introduction

  • Project initiated at Dell by Rob Hirschfeld and Greg Althaus
  • It was originally built on top of Chef, Opscode Configuration Management Solution but is currently evolving as an agnostic solution to support other configuration management tools like Puppet.
  • Crowbar includes a Ruby on Rails application to easily customize your environment.
  • Crowbar currently support Ruby 1.9.3 with RVM

About Crowbar 2

  • Crowbar2 is actively developed, the objective is to refactor Crowbar.
  • Objectives: Make it easier, safer, faster and more productive to use
    • simplify use of Chef and eliminate Crowbar requirements in our Opscode Chef recipes
    • multiple versions of the same OS running for upgrades
    • Moving to a database, Chef isn’t any more the primary DB for Crowbar objects. It will improve scalability.
    • Moving to Rails 3
    • Big disk support (enabling UEFI booting in Sledgehammer, will allow drives above 2 TB)

Read-on to get more in-depth details about the roadmap to Crowbar 2.

What’s new

Online Mode

  • Systems needs package refresh, they have an ongoing life, today Crowbar doesn’t help here, it is standalone system.
  • Crowbar 2 will use external connectivity, will help to support multiple OS
  • Crowbar 2 upgrades to Barclamps will become possible
  • Goal: Crowbar connected to the internet and pull down dependencies
  • only HTTP outbound connection required
  • Polipo is currently considered as the cache engine to reduce WAN consumption, could be configured to use a proxy.
  • Offline build will still be available.
  • See Etherpad

Network Models

  • Users were complaining because it was needed to re-install in case of change to networking
  • It will become easier to change networking after the fact with the database layer
  • we create networks models in the barclamps for : vlans, bridges, switches, … outside of network.json
  • treat networking more as an API - CRUD for adding networking and nodes to networks
  • barclamps should be able to add, reuse, leverage networks
  • See Etherpad.

Pull from Source

Heterogeneous OS

  • There’s a role on the node then you can pick the OS and the provisioner will setup that OS
  • OS selection is currently an attribute on the node
  • The deployer and provisioner use this attribute to make these choices
  • You have to set this attribute before allocation
  • Logic is just added to allow you to know which OSes are available
  • In CB2, they become CMDB_Attributes that the provisioner
  • this comes out of the directory trees by discovery
  • right now, code can pick Ubuntu 12.04 and Centos 6.2
  • we don’t see a need right now to go backwards for older OS
  • this is for exploration right now
  • See Ethepad

Attribute Driven Recipes

Installation methods

  • Offline build readme - recommended for general consumption
  • Online install readme - new method but still buggy
  • Dev install readme - best one for Crowbar developers
  • Prebuilt ISO - not really up to date

Dev Tools

Sprint Etherpads

Crowbar Devt Team

A big thanks to the Crowbar team:

  • Rob Hirschfeld @ Dell
  • Victor Lowther @ Dell
  • Greg Althaus @ Dell
  • Judd Maltin @ Dell
  • Andi Abes @ Dell
  • Jim Clement @ Dell
  • Surya Prabhakar @ Dell
  • Adam Spiers @ SUSE
  • Tim @ SUSE
  • Simon Jakesch @ Zenoss