We are doing the work in the open on the Crowbar Github so you have access to the very latest capabilities and it also means that the head the Crowbar may be unstable while we add capabilities. We feel like this is an important trade off because it allows us to keep up with the rapid pace of development in OpenStack (and other projects). This is the motivation for the recent modularization work and will continue to be a feature driver for Crowbar enhancements because it allows Crowbar users to easily bring in updated bits.
Note: I’m putting build ISOs and Sledgehammer TARs on crowbar.zehicle.com if you don’t want to follow these steps then download the ISO. We are updating the ISO daily, so don’t assume that you have that latest!
To build Crowbar, you need a Linux machine and access to the internet. The video shows how you can use an Ubuntu 10.10 Rackspace Cloud Server. We build Crowbar inside our firewall on our PCs too. No matter how you do it, Crowbar is full of fuzzily delicious cloud bits.
We’re testing a HUGE batch of changes to Crowbar before we commit them. The changes support the barclamp modularization work and also include the addition of RHEL and network barclamp update.
You may be eager to dig in; however, disruptiveness of these changes means that we are taking extra time to make sure that the build and install still work.
Here’s what you’ll see when we commit the changes:
Changes in naming to be more generic
Crowbar server user/pass is now crowbar/crowbar (was openstack/openstack)
Rails app path now crowbar_framework (was openstack_manager )
The pre-split barclamps (/change-image/dell/barclamps/*) have been moved into individual github repos (barclamp-*).
Barclamps are pulled into the build using “git submodule”
Chef scripts for barclamps are no longer copied and comingled together in the chef directory. They remain in their source directories (default /opt/dell/barclamps)
Inside the barclamps, you’ll find
A crowbar configuration file to direct the barclamp installer including localization and menu extensions.
Path changes to better align with the destination paths (command_line -> bin, app ->crowbar_framework)
App views moved under subdirectories
Changes to installation scripts
Barclamp installation changed to a ruby library so it can do more and be used individually outside of the install process. This allows barclamps to be imported or updated after installation.
Changes to create accommodate multiple operating systems
Addition of a “redhat-5.6-extra” directory with the RHEL 5.6 installation build components.
The RHEL version installs Opcode Chef Server 0.10 (Ubuntu is still 0.9 – community help here?)
Crowbar framework Rails app runs under Rainbow instead of Apache.
The code for the framework and the barclamp installer has been moved into the crowbar barclamp.
The installer bootstraps the crowbar barclamp to install itself.
The network barclamp has been substantially changed – that will require additional documentation. Features include
Concept of “conduits” that are constructed on nodes to be shared between barclamps
Ability to map adapters in a general way to deal with inconsistent enumeration
Mapping conduits to adapters allows for new teaming and multiple teaming configurations
We’ll post to the Crowbar listserv when changes. They will be posted to Crowbar HEAD. If you want the current build, we have created a “v1.0″ tag.
Dell has substantial IT assets to bring to bear on cloud solutions. All of them are ultimately tied to products that generate revenue for Dell; however, that does not prevent our being able to collaborate and share. On the contrary, we benefiting from input from our partners, customers and community to determine which features are needed to accelerate adoption. Our recent decision to accelerate Crowbar modularization is a clear example of that process.
It is essential to understand that this is not just about cloud technologies! It is about the collaborative way we are promoting them and the processes we are using to deliver them.
With Dell’s cloud moving at hurricane speed, it has been interesting to watch how other companies are setting their own OpenStack initiatives. It seems to me that many of these efforts involve forks from OpenStack that cannot/will not be contributed back the community. One (but not the only) example is from HP’s Emil Sayegh who says that “HP developers … ideas will be shared…” He does not commit to sharing HP’s code in his post. I hope that is an oversight and not their plan.
In time, forking may be needed. Right now, we need to focus on building a strong foundation. Open contributions of code are the engine of that success.
I shared the following with the Crowbar listserv and wanted to post it for the larger audience. If you want the latest on Crowbar then subscribe!
We’ve been getting questions and defects (thanks Matt Ray) about how we are going to allow you to update and add barclamps to Crowbar. We’re working on that exact issue right now – you can watch me on the “modules” branch of the github.
NOTE TO CROWBAR FOLLOWERS: we are moving some items around in the repo! There are “cactus” and “v1.0” tags in place so you can still build the current trees after we start the refactor.
We’ve got some big plans that I’ll outline on the list and earlier posts.
Right now, we’re working to modularize barclamps so that each one is in its own github repo. This will allow you to pull in barclamps at build time or live on site. We’re also creating import/update routines that work for live systems to make it easier to develop barclamps. Once again, that’s on the github modules branch. These will be exposed as rake barclamp:create[“foo”] and rake barclamp:install[“../foo”] type commands and I’ve committed to create some “how to make barclamps” videos.
That work is a prelude for a hard push on OpenStack Diablo before the design conference. All that work will also be done in the github but the Diablo barclamps will be in independent repos from the Crowbar framework.
If you want to get started early. 80% of a barclamp effort is around the Chef Cookbooks. Keith Hudgins with DTO did a great job writing up barclamps here: http://kb.dtosolutions.com/wiki/Deploying_the_cloudfoundry_barclamp. We’re changing some of it to make it much easier and more modular.