← Back to team overview

vmbuilder team mailing list archive

Re: Building Appliances

 

Hi Andreas,

I love the idea of using "virtual-appliance" as a marker for vas.

I have a couple of questions about the seed files:

 * How would I launch multiple vas that use the different seed files?
 * How do I provide my own seed files to override the upstream files?

Iain

On Thu, Sep 3, 2009 at 2:15 PM, Andreas Heck <aheck@xxxxxx> wrote:

> Hi all,
>
> in the last weeks I experimented with ways to build preconfigured
> virtual appliances with Ubuntu. From the start i thought it would be
> best to use the existing packaging system so that it's as easy as
> possible to take a virtual machine and turn it into an appliance and so
> it would also be possible to distribute appliances through the widely
> known and tested package repositories.
>
> But I found one problem: It is not enough to simply create a metapackage
> that pulls in the software you want to provide as dependencies and
> configure some parts with maintainer scripts. Since most server software
> asks its own configuration questions with debconf that you very likely
> want to replace with non-configurable default values and the scripts of
> the appliance package only run after all dependencies have been
> installed, you need to preseed your dependencies BEFORE you start the
> install of the appliance package.
>
> So I chose to write the two wrapper tools valist (lists all appliance
> packages in the repositories of the system) and vainstall (expects a
> seed file with the name of the appliance package in the same directory
> of the package mirror as the appliance package itself and applies it
> before calling apt-get install on the appliance package).
>
> In short the differences between an appliance package and regular
> package are as follows:
>
> - A va provides the virtual package virtual-appliance. This means that a
> VM can only be one kind of virtual appliance at a time and it provides a
> convenient way to find all virtual-appliance packages available in the
> package repositories known to a specific machine.
>
> - For every virtual-appliance there must be a seed file on the package
> server in the same directory where the deb file resides. If vainstall
> can't find it it will refuse to install the appliance package.
>
> For testing I built a simple appliance with the name mysql-dev-appliance
> that provides a MySQL appliance for developers which can be accessed
> with a mysql client on a remote machine and with phpmyadmin.
>
> I plan to build some more developer appliances like a PHP development
> for example, that allows to access the document root via SMB. The nice
> thing about developer appliances is that there is not much of a need for
> security and data backups. For building productive systems I would at
> least need to build some kind of web based backup and restore tool that
> can be adapted for each kind of appliance via a plugin mechanism and
> that allows to backup and restore the appliance specific application
> data.
>
>
> You can get my code from here:
>
> lp:~aheck/vmbuilder/appliances
>
>
> Hope you guys can give me some feedback on this approach for appliance
> building :)
>
>
> Best regards,
>
> Andreas
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~vmbuilder<https://launchpad.net/%7Evmbuilder>
> Post to     : vmbuilder@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~vmbuilder<https://launchpad.net/%7Evmbuilder>
> More help   : https://help.launchpad.net/ListHelp
>

Follow ups

References