On Thu, Jan 23, 2014 at 9:00 AM, Dustin J. Mitchell <dus...@mozilla.com> wrote: > I'm looking for info on CloudStack's support for bare-metal provisioning. > All I've found are a few 4.2 design documents that seem to be still works in > progress[1], and in fact seem focused on a Windows installer utility (PING). > > We at Mozilla have a bit of an unusual use-case, and I'm wondering how > practical it will be to add support for it. I'm sure there will be a decent > amount of coding involved, and if those can be distributed as distinct > plugins or upstreamed to the CloudStack distribution, all the better! We are > big supporters of OSS at Mozilla, after all. > > The case is this: we have a bunch of typical commodity servers, a bunch of > Mac Minis, and a bunch of development boards (Pandaboards, in particular). > We have tools in place for doing manual provisioning: IPMI for server power > and IP-addressable power supplies for the Minis and Pandaboards, along with > MDT for Windows, Kickstart for Linux (both PXE), Casper for OS X (Netboot), > and a PXE-based custom solution for development boards[2]. Our DNS, DHCP, > and network configuration is built from our internal inventory app[3], so > CloudStack would need to be able to interface with inventory to make such > changes. We'd like to dynamically provision OS's onto all of this hardware, > with the servers getting either Linux and Windows, the Minis getting various > flavors of OS X, and the development boards getting various flavors of > Android and Firefox OS. > > My hope is that we could add plugins that would glue CloudStack to some of > the tools we're already using. Is that practical? Totally impractical? Am > I taking the wrong approach? Will I be able to support all of these various > backends in a single CloudStack instance? > > TIA, > Dustin > > [1] > https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+Baremetal > [2] https://wiki.mozilla.org/ReleaseEngineering/Mozpool > [3] https://github.com/mozilla/inventory > > P.S. Apologies for those who saw a similar post on the OpenStack list - I am, > indeed, looking for similar feedback here. >
Hi Dustin, I am far from an expert on all of the baremetal stuff but I'll try and take a first stab; and I've cced some folks who should be able to help provide better answers. So CloudStack's baremetal support has become a bit more modular; so let me start with the history. Essentially in the 3.x days it was Ping - and we had an interface to interact with PING. If you've used PING you know that it's full of compromises, and while arguably simpler than RIS was for Windows deployment, it's absolutely archaic compared to some of the better tools out there for Unix-based distributions. So the second generation of baremetal in CloudStack was designed with the idea that there would be 'something' handling provisioning and that CloudStack needed to be able to interact with it; but if you are implementing a IaaS layer you should probably already have a modern provisioning system in place, and we should just be able to talk to it. (ideally via an API) So today there are essentially three baremetal plugins - PING, Kickstart, and UCS (though UCS is much more than just provisionining.) I don't know directly about UCS, but Kickstart and PING control server power/boot with IPMI; so not a whole lot different. I think the documents that you found are largely from a wiki migration - I've linked to some of the others below that are a bit more updated. https://cwiki.apache.org/confluence/display/CLOUDSTACK/Baremetal+KickStart https://cwiki.apache.org/confluence/display/CLOUDSTACK/Enhanced+Baremetal+support+on+Cisco+UCS https://cwiki.apache.org/confluence/display/CLOUDSTACK/Plug-ins%2C+Modules%2C+and+Extensions Someone at one point had a document on writing your own plugin for baremetal - I'll try and scrounge around and find it. In short, completely doable to write your own plugins to do what you are looking for; and I'd love to see your patches for adding support for Casper and MDT :) CloudStack can easily do any number of 'baremetal' plugins in a single plane of management; along with mixing and matching hypervisors. In example, you could have a single zone[1] with KVM, VMware, Xenserver hypervisor offerings as well as utilizing a number of different baremetal plugins (which for all intents and purposes, CloudStack treats as a 'hypervisor') Frank: What else should we tell Dustin? --David