[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[MirageOS-devel] Packaging for Mirage VMs

I'm looking at ways of automating downloading and deployment of Mirage services.

Back in April, I demoed a simple system using 0install and a little
Python script. It worked like this:

I put up a GPG-signed XML file describing versions mirage-skeleton/console here:


On Linux, you could download and run the Unix build with:

$ 0install add mir-console http://test.roscidus.com/mir-console.xml
$ mir-console

On Xen, you could download and run the Xen build with:

$ 0install add mir-console --os=Xen http://test.roscidus.com/mir-console.xml
$ 0xm run mir-console

0xm was just a little script that fixed up the pathname in the
package's .cfg before running it, because xm didn't support relative
paths (xl does support relative paths, but rather stupidly resolves
them relative to the cwd rather than to the .xl file).

Using 0install this way gets several useful features for free:

- GPG signature checking, automatic downloading of keys, a local trust
DB and a key information server to provide hints about which keys to
- Automatic updates, testing vs stable versions, roll-back, etc.
- Tooling for hosting the repositories, mirroring, etc.

The main problem with this simple scheme was that the package gets to
supply the .xl file, which isn't what you want (it imples trusting the
package with your dom0 for one thing). I think we should have some
wrapper for 0install that lets the user specify the disk size and the
service to install and creates the LVM partition and the .xl file
automatically. e.g.

$ 0xl add mail http://test.roscidus.com/mail-server.xml --disk=256M
$ 0xl run mail
$ 0xl stop mail
$ 0xl destroy mail

The simplest approach is to have 0xl run "lvcreate" and "xl" directly
as subprocesses. However, it could also use some API (e.g. XAPI or
libvirt). Do people have a preference here? These might be too heavy
for e.g. deployment on a cubieboard in your home.

Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

MirageOS-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.