Crowbar is an Open Source solution to quickly provision new services from bare metal servers.
- 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.
- 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
- 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
- See Etherpad
- 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
- See Etherpad
- Crowbar Wiki
- Crowbar Users guide
- Crowbar Deployment guide
- Rob Hirschfeld’s Blog
- SUSE Crowbar Portal
- irc.freenode.net #crowbar
- 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
- Crowbar repository
- SUSE Cloud fork
- Mailing list
- Trello boards for: current sprint and backlog
- Crowbar wiki transfering content to new repo, track progress on this Etherpad
- CB2 Dev Etherpad
- CB2 API Etherpad, Doc
- Join me screen sharing for meetings
- Sept–06–2012 <==
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