All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: "Gabriel L. Somlo" <gsomlo@gmail.com>
Cc: Michael Roth <mdroth@linux.vnet.ibm.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] RFC: Proposal to add QEMU "Guest Environment Variables"
Date: Wed, 4 Feb 2015 15:24:32 +0000	[thread overview]
Message-ID: <20150204152432.GZ3032@redhat.com> (raw)
In-Reply-To: <20150204152013.GW3354@HEDWIG.INI.CMU.EDU>

On Wed, Feb 04, 2015 at 10:20:14AM -0500, Gabriel L. Somlo wrote:
> Hi Daniel,
> 
> On Wed, Feb 04, 2015 at 09:31:32AM +0000, Daniel P. Berrange wrote:
> > On Tue, Feb 03, 2015 at 04:38:59PM -0500, Gabriel L. Somlo wrote:
> > > On Tue, Feb 03, 2015 at 02:11:12PM -0600, Michael Roth wrote:
> > > > 
> > > > This does seem like useful functionality, but I think I'd like to know
> > > > more about the actual use-cases being looked at.
> > > 
> > > The proposed functionality is mostly equivalent to that offered by
> > > "GuestInfo variables". So yes, initial activation scripts :)
> > > 
> > > > Is this mostly about executing initial activation scripts? Because after
> > > > that point, a key-value store can be managed through the
> > > > guest-file-read/write interfaces for anything on the guest-side that's
> > > > interested in these variables.
> > > > 
> > > > Even activation could be done using this approach, where the
> > > > scripts start QGA and wait for the host to coordinate the initial creation
> > > > of the file containing those variables, then setting a file marker that
> > > > allows activation to proceed. And if that seems wonky, I'm fairly sure you
> > > > could script the creation of the initial key-value store prior to starting
> > > > the guest using libguestfs:
> > > > 
> > > >   http://libguestfs.org/
> > > 
> > > Specifically, I'm trying to port to QEMU a simulation/training setup
> > > where multiple VMs are started from the same base image, and guestinfo
> > > environment variables help each instance determine its "personality".
> > > 
> > > Editing the disk image is not feasible, since the idea is to share the
> > > base disk image across multiple VMs. And needing to connect to each VM
> > > after having started it, wait for it to bring up the QGA, then get it
> > > to accept environment variables, that's precisely the wonkiness I'm
> > > trying to avoid :)
> > 
> > AFAICT, you're describing the exact scenario that cloud-init solves.
> > You have a generic cloud base image, and you provide metadata to the
> > guest (either via a transient CDROM image generated at boot, or via
> > a speciall network interface with well known IP addr + HTTP service)
> > which is uses to configure itself for a specific task as boot up.
> 
> Thanks for the pointer, cloud-init does indeed sound very interesting,
> and I'll definitely keep it in mind when creating new content (new VM
> images) for the application.
> 
> However, looking at this:
> 
> https://cloudinit.readthedocs.org/en/latest/topics/capabilities.html
> 
> I found the following:
> 
>   "Cloud-init's behavior can be configured via user-data [...] which
>    can be given by the user at instance launch time. This is done via
>    the --user-data or --user-data-file argument to ec2-run instances
>    for example.
> 
>    * Check your local clients documentation for how to provide a
>      user-data string or user-data file for usage by cloud-init on
>      instance creation"
> 
> I guess what I'm proposing is a low-overhead, flexible way
> to pas such a user-data string into qemu, via its command line,
> and without adding the non-trivial requirement that whatever I'm
> doing must happen within the context of a cloud infrastructure
> such as ec2, openstack, etc., which is how user-data is currently
> provided to cloud-init on the starting VMs.

Yes, there is some overhead in setting up QEMU on the host to provide
the data cloud-init needs, but it isn't all that difficult. For example
Rich Jones describes how to setup a virtual disk for cloud-init

  https://rwmj.wordpress.com/2013/12/10/creating-a-cloud-init-config-disk-for-non-cloud-boots/

Given the prevalence of cloud-init across distros, I think you'll be hard
pressed to get them to support an alternative method, even if it is a bit
simpler at the QEMU setup level.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

  reply	other threads:[~2015-02-04 15:24 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-03 19:09 [Qemu-devel] RFC: Proposal to add QEMU "Guest Environment Variables" Gabriel L. Somlo
2015-02-03 19:14 ` Denis V. Lunev
2015-02-03 20:14   ` Gabriel L. Somlo
2015-02-03 20:23     ` Denis V. Lunev
2015-02-03 19:26 ` Eric Blake
2015-02-03 20:54   ` Gabriel L. Somlo
2015-02-03 20:11 ` Michael Roth
2015-02-03 21:38   ` Gabriel L. Somlo
2015-02-03 21:49     ` Denis V. Lunev
2015-02-03 22:14       ` Gabriel L. Somlo
2015-02-03 22:08     ` Michael Roth
2015-02-04  9:31     ` Daniel P. Berrange
2015-02-04 15:20       ` Gabriel L. Somlo
2015-02-04 15:24         ` Daniel P. Berrange [this message]
2015-02-04 15:59           ` Gabriel L. Somlo
2015-02-04 16:12             ` Daniel P. Berrange
2015-02-04  9:29 ` Daniel P. Berrange
2015-02-04 15:55 ` Christopher Covington
2015-02-04 16:00 ` Richard W.M. Jones
2015-02-04 16:06   ` Gabriel L. Somlo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150204152432.GZ3032@redhat.com \
    --to=berrange@redhat.com \
    --cc=gsomlo@gmail.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.