On Thu, Jul 12, 2012 at 4:32 PM, Chip Childers
<chip.child...@sungard.com> wrote:
> I've been working on encapsulating the DevCloud configuration into a
> Vagrant [1] box this week.  This was something that was being
> discussed on the DevCloud thread [2], but I wanted to break it out
> into a different discussion.  I've realized that I hit a bit of a road
> block, and want to get the opinion of others in the community about
> how far I should go to get around it.
>
> My intent was to break up the DevCloud creation process into two
> phases.  Phase 1 could be done centrally, with the resulting image
> being updated on semi-regular basis.  It would consist of an
> unattended Ubuntu 12.04 installation (following the configuration
> guidance that Edison already provided), plus install and config
> xen/xcp/network (basically executing "devcloudsetup.sh -p").  Phase 1
> isn't going to be a problem really, and has nothing to do with
> Vagrant.
>
> My issue is in getting to the second phase, for which I was intending
> to do the code checkout, build and final configuration steps within
> the VM.
>
> A little bit of background on Vagrant might help those that haven't
> used it before:
>
> It's basically an elegant (IMO) way to encapsulate a set of
> configuration and provisioning steps for a VM (or multiple VMs) within
> VirtualBox.  It's very much designed with developers in mind.  Edison
> has already provided a fully configured OVA, but the benefit we would
> have of using something like this would be to ensure that everyone
> using the Vagrant process would be able to consistently build and
> teardown DevCloud instances with the most up to date code (or code
> from an appropriate branch).
>
> Vagrant has 2 functions really: VM control and "provisioning" logic.
> The former simply manages the VM's hardware configuration and state
> (registered, unregistered, running, sleeping, etc...).  The later is
> intended to provision a developer's application and config into the VM
> during a "vagrant up" call (i.e.: whenever the VM is newly started).
> To accomplish this provisioning process, there are 3 different
> "provisioner" plugins:  puppet, chef and ssh.  For these to work, the
> guest OS needs to have the VirtualBox Guest Additions installed and
> functioning...  specifically, they make heavy use of VirtualBox shared
> folders to push artifacts into the VM.  They also use ssh to interact
> with the guest OS, but it has the expectation that the shared folder
> is available to stage temporary script files for each individual
> command being sent.
>
> The problem that I've hit is that the VirtualBox guest additions
> kernel module is rendered non-functional when the VM is booted into
> dom0.  I'm frankly not enough of a kernel guy to figure out if there
> is a hack to make it work.  If someone else wants to give it a shot,
> I'd be more than happy to walk through the steps to reproduce the
> issue.
>
> As far as I can tell though, the option that I have to make Vagrant
> work is to get in contact with the maintainers of that project and
> discuss options for an alternate "provisioner" plugin (or how to use
> what's there in a different way).
>
> I'm looking for comments on two questions:
> 1 - Does the community (besides myself) have a significant enough
> interest in using Vagrant to make it worth the time to sort out the
> provisioner issue?

Are you installing the -headers -devel kernel packages for the Xen
kernel (I have no idea of Ubuntu/debian call the packages
-headers/-kernel - it could be that it's not not able to build the new
packages.

So the only other immediate idea is this:
Divide this up into runstages - 1 for the prep - and then when
everything is configured - change the kernel you boot too as the final
runstage, after which it should be ok that the vagrant plugin doesn't
load.

>
> 2 - Does anyone have an alternate suggestion for how to achieve what I
> had hoped to achieve?


libguestfs? It certainly won't do everything, but might do some of it.

Reply via email to