<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>