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

Miguel Gaiowski miggaiowski at gmail.com
Sat Jun 2 01:55:18 UTC 2012


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

The  idea that  was proposed  [0] was  to create  something  like Suse
Studio for Debian. With that, I spent some time using this tool to see
which  features we could  implement. First  impression was  that there
would be no way I'd be able to build something like Suse Studio. Their
tool is amazing,  with tons of cool features like  live testing of the
created image.  It lets you boot  the image in their  servers and show
the machine booting and everything to you.

That being said,  I had to figure out which parts  were the essence of
the  tool,  the  things  I  should  build.  Plus,  I  got  a  list  of
requirements from my mentor, that I will copy here:

- Program must provide export command to create an archive (contains
scripts, files,... required for generation, extracted from db);
- Program must generate a virtual image from an archive (template,
files,...);
- Program must  not allow execution  of user scripts on  local server,
only in chroot step;
- Program  must  check  available  space before  creating  image  from
expected image size;
- Template must  allow multiple network  interface definition (static,
dhcp);
- Template must allow multiple user creation with passwords;
- Template must contain packages selection;
- Template must specify where files should be put in the image (file
location);
- Included files can be compressed files;
- Template should specify if file must be uncompressed in the image;
- Template   must  detail,   for  each   file,   its  ownership/rights
(chmod/chown);
- Program must compress generated image as final step;
- Program  could export  image content/file  hierarchy to  an external
file, for later user analysis/check (and unit test checks);
- Program must detect image generation failure;

My mentor  told me to  use grml-deboostrap, which  he has used  in the
past and has worked well for him. So I would need to figure out how to
use it first.

I decided I'd be doing  all the testing inside Virtual Machines, since
I don't want any  bugs to wipe out my machine. That  means I needed to
get Virtual  Box and install  Debian inside a  VM. That was  easy, I'd
done that before. The problem  was that I installed Debian stable, and
grml-deboostrap was not  available in the default repos.  Then I tried
installing Debian testing in a VM, to get grml-deboostrap. I could not
get the  testing version to install  with Virtual Box.  There was some
problem with actual processor  instructions (or something vaguely like
that, I should  have written it down). After all  that trouble, I went
back to  Debian stable and  found a repo  at grml project page  [1]. I
added that repo  to my apt sources and  finally got grml-deboostrap to
install correctly.

I read all  the documentation for grml-deboostrap here  [2]. This tool
will help me *a lot*.

I  started a  blog, where  I intend  to publish  the  difficulties and
solutions a find  during the development of this  project. I will also
post these reports there (here).

Around this  time, we got our  project created on alioth  [3]. Cool, a
git repo!  I had already started  a github project, just  in case, but
now I'll be using alioth's.

There are some  *really hard* exams coming up next week  for me, and I
tried explaining to my mentor that  I wouldn't be coding as much these
days. I made  it clear that I will fulfill  the requirements later on,
and that I just needed some time to focus on studying.

Nonetheless, I started coding last  week with a set of util functions,
that will take  care of creating and reading  the archives. These will
have all  the instructions (template,  configs) to create  the virtual
image and  all the  files (e.g.,  scripts that run  at first  boot) as
well. I've  been creating unit tests  as I go along,  hoping that this
will make for better quality code.

Next I will be coding the backend  part of the tool. That is, given an
archive, extract  everything you  need from it,  call grml-debootstrap
accordingly, customize and return the image.

----------------------------------------------------------------------
[0] http://
wiki.debian.org/SummerOfCode2012/StudentApplications/MiguelGaiowski
[1] http://grml.org/files/
[2] http://grml.org/grml-debootstrap/
[3] https://alioth.debian.org/projects/lyncee/
----------------------------------------------------------------------

-- 
Miguel Fco. A. de Mattos Gaiowski
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/soc-coordination/attachments/20120601/f644e482/attachment.html>


More information about the Soc-coordination mailing list