[Soc-coordination] Report 2 — Lyncee - A Debian virtual image web tool

Miguel Gaiowski miggaiowski at gmail.com
Mon Jun 18 01:32:46 UTC 2012


Second Debian Report
Project: Lyncee - A Debian virtual image web tool

The project I'm working on is  to create a web interface that lets the
users create custom virtual Debian  images. The project can roughly be
separated as backend and frontend, and I've been working on the former
these past two weeks.

There is a very good tool called grml-debootstrap that automatizes the
creation of  Debian images.  We  are using it  as a large part  of the
backend system, letting  it do the hard work  of installing the distro
and all the packages, grub and  everything else. We are gonna take the
input from  the user through the  web interface and  create an archive
with all  the configuration chosen,  the list of packages,  scripts to
run on first boot, and everything  else. With this archive, we need to
call grml-debootstrap with the appropriate parameters.

I've been working on a  Python module with all the functions necessary
to manipulate  these archives. It basically takes  data structures and
creates  the archive  on  disk  and the  inverse  process, taking  the
archive files and putting  everything into data structures for further
use. This module will be used by both the backend and the fronted.

The   backend   also   has    another   part,   the   interface   with
grml-debootstrap.  It  uses the  archive  util  functions  to read  an
archive,    checks    its    validity    and    proceeds    to    call
grml-debootstrap.  Most  of  the  parameters  are  obtained  from  the
configuration file  inside the archive.  The list of packages  is also
kept in the archive and passed to grml-debootstrap.

The things  I've just described  are already implemented  and working,
with unit tests and all. Further work needs to be done in the backend,
such as implementing templates, config scripts, network configuration,
etc. I've chosen to start working  on the frontend instead, to try and
have a working complete tool, albeit the lack of features. From there,
I can  start iterating  and adding more  features to the  frontend and
backend.

The frontend is  what I'll be doing now. I will  write it using Python
and Django.  So the first thing  I want to  do is let the  user choose
basic settings and packages from the web interface, store this info in
the database and  let the archive util module fetch  those from the DB
and pass it on  to the backend. That being done, we  will have a first
deliverable part of the project.

All my code is hosted on alioth. The project is at [0].
The git repo is at [1].

----------------------------------------------------------------------
[0] https://alioth.debian.org/projects/lyncee/
[1] git.debian.org/git/lyncee/lyncee.git
----------------------------------------------------------------------

Miguel Gaiowski


-- 
Miguel Fco. A. de Mattos Gaiowski



More information about the Soc-coordination mailing list