Awesome. One thing I forgot in the should be able to section is to start with ./dev switch development/master to check out all the crowbar 2.0 code. On Sep 7, 2013 7:15 PM, "Shane Gibson" <shane_gib...@symantec.com> wrote:
> ** ** > > Victor – thanks for the great update. After having spent some time > discussing the Crowbar 2.0 vision and direction with Rob – we were keen to > see bits and pieces of the implementation come together. Nice to see this > happening quickly! **** > > > We will be give this iteration a run through on our environment too… **** > > ** ** > > ~~shane **** > > ** ** > > ** ** > > *From:* crowbar-boun...@dell.com [mailto:crowbar-boun...@dell.com] *On > Behalf Of *Victor Lowther > *Sent:* Saturday, September 07, 2013 4:56 PM > *To:* crow...@lists.us.dell.com > *Subject:* [Crowbar] Crowbar 2.0 Status Report**** > > ** ** > > As of the latest set of pushes to development release, Crowbar 2.0 is now > able to deploy an admin node that can then boot other nodes into > Sledgehammer. Unlike the last time CB2.0 was able to do this, the Crowbar > framework is performing all the work needed to bootstrap itself into > usefulness without manual intervention. With the current codebase, you > should be able to:**** > > - Build a Crowbar ISO using the usual ./dev build --os ubuntu-12.04 > method.**** > - Boot a VM (or real machine, if you have one to spare) to the > generated ISO, and let it install**** > - Once the admin node is installed, log in as crowbar/crowbar, sudo -i > to root, and run /opt/dell/bin/install-crowbar your.admin.fqdn**** > - Watch the script output with screen -r**** > - Once screen terminates, log in to the Crowbar webui at > http://192.168.124.10:3000 with crowbar/crowbar**** > - Poke around all the new UI bits and see all the new shininess**** > - Boot other nodes into sledgehammer and then watch them drop to a > login prompt instead of doing something useful**** > > While that does not sound like much on the surface, that Rob and I have > been able to go from just having a working web UI and test suite to having > most of the key bits in place to act as a Crowbar admin node over the last > 3 weeks in our spare time validates several of the key design features of > CB 2.0, which I will go over in more detail below.**** > > ** ** > > Design difference between CB 1.x and CB 2.0:**** > > - Shifting from coarse-grained linear semi-implicit dependencies > between barclamps to having a proper dependency graphs for roles and > node-role bindings. > In Crowbar 1.x, the core Crowbar framework has several > partially-overlapping ad-hoc mechanisms for determining when it should do > what, and they are all driven by having barclamp authors assigning integer > priorities to barclamps, chef roles, configuration data, and hacks and > monkey patching to work around where they do not play nicely together. > Since the rules were informal and never documented, the only way to > determine when things would happen is via experimenting with priority > numbers until things worked the way you expected them to, or adding yet > another hack if you could not get things to work properly. In Crowbar 2.0, > barclamp writers only need to explicitly declare the dependencies on other > roles their roles have, and make sure their declarations do not make the > role dependency graph circular, which is easier to reason about. The > Crowbar framework then uses the dependency graph between roles to build the > graph between node-role bindings as the cluster is built out to ensure that > things always happen in the right order.**** > - Shifting the primary emphasis in interacting with Crowbar from > interactions at a barclamp level to interactions at the role and node-role > binding level. > In Crowbar 1.x, virtually all of the interaction between the user and > Crowbar happens in terms of barclamp level proposals. In Crowbar 2.0, that > responsibility is divided into 3 different spheres of responsibility:** > ** > > > - Roles, which represent a specific bundle of capabilities that can be > attached to a node. For instance, dns-server is the role in Crowbar 2.0 > that allows a server to act as a DNS server.**** > - Deployments, which act as a collection of nodes along with a > default set of role configuration information for any roles that may be > bound to a node in the deployment. Deployments will be hierarchical, > and > there is a system deployment that the Crowbar framework manages at the > root > of that hierarchy. All newly-discovered nodes will be added to the > system > deployment to get their initial node-role bindings.**** > - Node-role bindings (called noderoles for short -- please suggest > a better name for this!), which represent a specific instance of a role > bound to a node. Noderoles have their own configuration in addition to > the > role configuration at a deployment level and the default role > configuration. > **** > > > - Not relying on Chef as a foundational component. > Crowbar 1.x relies on Chef 10.x for everything, including storing all > of the information needed to run the Crowbar framework. This meant that > any failure on the part of Chef had catastrophic consequences on Crowbar. > Crowbar 2.0 is a standalone application that does not rely on Chef to > store its configuration information.**** > - Not relying on Chef as the only way to effect change on a node. > In Crowbar 2.0, we have the concept of a jig as a component that can > be used to effect change on another node. Support for using Chef in > Crowbar 2.0 is provided by the Chef jig, and Crowbar 2.0 also has a Script > jig that is used for bootstrapping. Every role declares what jig must be > used to do what it needs on a node.**** > > Next Steps for Crowbar 2.0 (in rough dependency order):**** > > - Make framework side of the Network barclamp operate properly, > instead of working in rigged demo mode. > Right now, the Crowbar framework side of things is just smart enough > to allocate an IP to the admin node to exercise the network recipe and > bootstrap the rest of the admin node roles. It needs to be able to track > IP address allocations in a generic fashion, and it needs to be able to > support other networks besides the admin network.**** > - Flesh out node discovery. > We can boot nodes into Sledgehammer, but we need to wire in more > functionality to allow node discovery and configuration to take place.* > *** > - Come up with a reasonable OS installation story, and implement it.*** > * > - De-cruft the Crowbar-specific Chef cookbooks. > While the current Chef cookbooks work with minimal changes, a > side-effect of how the Crowbar framework manages configuration data via the > node-role graph is that it is very easy for most of our core cookbooks to > operate in an entirely attribute-driven fashion. Refactoring them and > stripping out the CB 1.x specific cruft would be a good way to learn the > framework.**** > > Questions? Comments? Flames? Pull requests? I am at your service.**** > > ** ** > > ** ** > > ** ** > > _______________________________________________ > Crowbar mailing list > Crowbar@dell.com > https://lists.us.dell.com/mailman/listinfo/crowbar > For more information: http://crowbar.github.com/ >
_______________________________________________ Crowbar mailing list Crowbar@dell.com https://lists.us.dell.com/mailman/listinfo/crowbar For more information: http://crowbar.github.com/