UEC appliance

Soren Hansen soren at ubuntu.com
Fri Oct 9 11:25:52 BST 2009

Hey, guys.

As some of you may know, we intend to offer a proof-of-concept reference
appliance for use with UEC. There are various challenges with regard to
persistence in the EC2 paradigm,  which I intend to try to deal with
shortly. At the moment, however, the reference appliance has no concept
of persistence, so once you terminate the instance, your data is gone,
and you start afresh the next time you run it. For this reason, we
intend to mark this appliance with a bit fat "DEMO - NOT FOR PRODUCTION

This first iteration is based on Mediawiki. Here's what I did:

Using VMBuilder, I ran:

    sudo vmbuilder xen ubuntu                             \
      --suite=karmic                                      \
      --arch=i386                                         \
      --ec2                                               \
      --ec2-version="Mediawiki DEMO appliance"            \
      --components main,restricted,universe               \
      --part examples/ec2-i386-part-file.txt              \
      --ec2-landscape                                     \
      --lock-user                                         \
      --tmp=/tmp                                          \
	  --addpkg=mediawiki								  \

(Actually, I also pointed it at my local mirror, but that's hardly important

Once built, I followed the directions on


using the generated root.img instead of the downloaded image and started
the VM. I went to


and configured the wiki with a password of "demo" for both the WikiSysop
user and the database. Ideally, the person setting this up should be
asked for the password, but even though Mediawiki is configured through
the web interface, it requires administrative access to a shell to
actually copy the generated configuration into place. This is reasonable
in the usual case, but when we want to offer this as an appliance,
requiring logging in over ssh and running cryptic commands is not
acceptable. I'm sure we can patch our way out of this, but I didn't have
time for that yet.

Once that was all done, I tried to clean up after myself, and shut down
the VM. I tar'ed up the resulting disk image using

   tar cSzf uec-mediawiki-appliance.img.tar.gz root.img

and am currently uploading it to


So, the two main problems to be solved here are:
 * Let the user set everything they have to up in the web interface.
   E.g. they should be asked for their e-mail and a password, but no
   details about where the database is, etc. Simplicity is key.
 * Find a way to persist the data.

I've had a good, long discussion about how to achieve the latter goal.
As a first step, we'll add a handler to the appliance that will look in
user-data for a set of AWS credentials. If passed, they will be used to
set up an EBS volume and mount put the relevant parts of the filesystem
on it (in this case, /var/lib/mysql, /var/lib/mediawiki, and
/etc/mediawiki). Later on, we'll try to add a clever client that will
take care of passing the necessary information so that the user won't
have to deal with this manually.

That's the current status. I've got next week off, so I'll see you all
on next Monday.

See also:

  http://wiki.ubuntu.com/VirtualApplianceSpec (somewhat out of date, but
                                               it explains some of the
                                               concepts involved) 
  http://code.launchpad.net/ec2-init (ec2-init-appliance-ebs-volume-mount.sh)

Soren Hansen                 | 
Lead virtualisation engineer | Ubuntu Server Team
Canonical Ltd.               | http://www.ubuntu.com/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
Url : https://lists.ubuntu.com/archives/ubuntu-devel/attachments/20091009/f3245cb2/attachment.pgp 

More information about the ubuntu-devel mailing list