<div>First Debian Report</div><div>Project: Lyncee - A Debian virtual image web tool</div><div><br></div><div>The  idea that  was proposed  [0] was  to create  something  like Suse</div><div>Studio for Debian. With that, I spent some time using this tool to see</div>



<div>which  features we could  implement. First  impression was  that there</div><div>would be no way I'd be able to build something like Suse Studio. Their</div><div>tool is amazing,  with tons of cool features like  live testing of the</div>



<div>created image.  It lets you boot  the image in their  servers and show</div><div>the machine booting and everything to you. </div><div><br></div><div>That being said,  I had to figure out which parts  were the essence of</div>



<div>the  tool,  the  things  I  should  build.  Plus,  I  got  a  list  of</div><div>requirements from my mentor, that I will copy here:</div><div><br></div><div>- Program must provide export command to create an archive (contains</div>



<div>scripts, files,... required for generation, extracted from db);</div><div>- Program must generate a virtual image from an archive (template,</div><div>files,...);</div><div>- Program must  not allow execution  of user scripts on  local server,</div>



<div>only in chroot step;</div><div>- Program  must  check  available  space before  creating  image  from</div><div>expected image size;</div><div>- Template must  allow multiple network  interface definition (static,</div>



<div>dhcp);</div><div>- Template must allow multiple user creation with passwords;</div><div>- Template must contain packages selection;</div><div>- Template must specify where files should be put in the image (file</div>



<div>location);</div><div>- Included files can be compressed files;</div><div>- Template should specify if file must be uncompressed in the image;</div><div>- Template   must  detail,   for  each   file,   its  ownership/rights</div>



<div>(chmod/chown);</div><div>- Program must compress generated image as final step;</div><div>- Program  could export  image content/file  hierarchy to  an external</div><div>file, for later user analysis/check (and unit test checks);</div>



<div>- Program must detect image generation failure;</div><div><br></div><div>My mentor  told me to  use grml-deboostrap, which  he has used  in the</div><div>past and has worked well for him. So I would need to figure out how to</div>



<div>use it first.</div><div><br></div><div>I decided I'd be doing  all the testing inside Virtual Machines, since</div><div>I don't want any  bugs to wipe out my machine. That  means I needed to</div><div>get Virtual  Box and install  Debian inside a  VM. That was  easy, I'd</div>



<div>done that before. The problem  was that I installed Debian stable, and</div><div>grml-deboostrap was not  available in the default repos.  Then I tried</div><div>installing Debian testing in a VM, to get grml-deboostrap. I could not</div>



<div>get the  testing version to install  with Virtual Box.  There was some</div><div>problem with actual processor  instructions (or something vaguely like</div><div>that, I should  have written it down). After all  that trouble, I went</div>



<div>back to  Debian stable and  found a repo  at grml project page  [1]. I</div><div>added that repo  to my apt sources and  finally got grml-deboostrap to</div><div>install correctly. </div><div><br></div><div>I read all  the documentation for grml-deboostrap here  [2]. This tool</div>



<div>will help me *a lot*. </div><div><br></div><div>I  started a  blog, where  I intend  to publish  the  difficulties and</div><div>solutions a find  during the development of this  project. I will also</div><div>post these reports there (here).</div>



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



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



<div>and that I just needed some time to focus on studying. </div><div><br></div><div>Nonetheless, I started coding last  week with a set of util functions,</div><div>that will take  care of creating and reading  the archives. These will</div>



<div>have all  the instructions (template,  configs) to create  the virtual</div><div>image and  all the  files (e.g.,  scripts that run  at first  boot) as</div><div>well. I've  been creating unit tests  as I go along,  hoping that this</div>



<div>will make for better quality code.</div><div><br></div><div>Next I will be coding the backend  part of the tool. That is, given an</div><div>archive, extract  everything you  need from it,  call grml-debootstrap</div>



<div>accordingly, customize and return the image. </div><div><br></div><div>----------------------------------------------------------------------</div><div>[0] http://<a href="http://wiki.debian.org/SummerOfCode2012/StudentApplications/MiguelGaiowski" target="_blank">wiki.debian.org/SummerOfCode2012/StudentApplications/MiguelGaiowski</a></div>



<div>[1] <a href="http://grml.org/files/" target="_blank">http://grml.org/files/</a></div><div>[2] <a href="http://grml.org/grml-debootstrap/" target="_blank">http://grml.org/grml-debootstrap/</a></div><div>[3] <a href="https://alioth.debian.org/projects/lyncee/" target="_blank">https://alioth.debian.org/projects/lyncee/</a></div>



<div>----------------------------------------------------------------------</div><div><br></div>-- <br>Miguel Fco. A. de Mattos Gaiowski<br>