[Vmdebootstrap-devel] I'm adopting vmdebootstrap

Lars Wirzenius liw at liw.fi
Sun Sep 4 07:28:26 UTC 2016


Hi, all.

I am the original author vmdebootstrap. It started as a quick hack to
let me create disk images for virtual machines without doing a manual
install with debian-installer. I didn't want to do it manually,
because I needed six images that only varied with Debian release and
CPU architecture: I was setting up a CI system test Obnam on Debian
oldstable, stable, and unstable, on i386 and amd64 targets.

Much to my surprise, a few other people seemed to like vmdebootstrap.
This led to some feature requests and other maintenance burden I
wasn't ready for, and as a result I turned over the project to Neil
Williams. Neil took good care of it for a couple of years, adding things
like grub support, and foreign architecture support, and other things I
haven't yet found. Many thanks to Neil.

Neil has now asked me to take vmdebootstrap back, and I have agreed to
do so, partly because I need it at work and at home.

I would like to see vmdebootstrap grow into a tool that adequately
handles all of Debian's image creation needs. I am currently thinking
particularly of the following use cases:

* Create VM images for libvirt + kvm (which is what I use at home).

* Create VM images for all the cloud services: OpenStack, AWS, etc. I
  don't know what they all are (I've only used OpenStack and AWS), and
  I'm not on expert on any of them (but we use OpenStack at work). As
  such, I'll certainly need help with them.

* Create disk images for actual hardware. I have installed two of my
  servers at home like this: I generate a disk image with
  vmdebootstrap, write that to a USB stick with dd, and then boot off
  the stick. The initial image is very barebones, and I use Ansible to
  do any additional configuration (and specifically I don't use the
  vmdebootstrap customization script).

  I imagine this would also be useful to many who want to hack on ARM
  devboards, and such, but again, that isn't something I'm an expert
  on.

These are the overall classes, but each specific use may have its
unique requirements. For example, there's been some recent discussion
of how customizable partitioning should vmdebootstrap support. My
opinion is that it should support anything users need, even if the
tool becomes more complex. As an example, I have a personal need to be
able to create a bootable image that has /boot in cleartext and
everything else encrypted, with LVM.

There may be other use cases that I haven't thought of yet. Please
tell me. There may be features vmdebootstrap currently lacks that you
really, really want. Tell me.

I wish to maintain vmdebootstrap so that it serves its users and that
requires it to be quite flexible. The challenge for me is to come up
with a way to be flexible while keeping complexity at a manageable
level.

I also want vmdebootstrap to be pleasant to use. What hinders you from
enjoying vmdebootstrap? Tell me.

The other challenge is that I think the code quality is not great. It
started as a quick hack, without automated tests, and that's how it
was when I gave the project to Neil. Some tests have since been added,
but not enough, I feel. This is not Neil's fault in any way: the mess
he inherited was something I feel ashamed of. I intend to improve the
code quality massively. I want a thorough unit test suite, and I want
to extend the integration tests so that the images they create also
get tested.

This is all a lot of work. I would like help from others. A lot of
things are mysterious to me. Would you like to help? What are concrete
things you yourself could do or would like to do? Tell me.

I am aware that there are other tools than vmdebootstrap. The most
common other choice seems to be bootstrap-vz. I haven't used it; it's
possible that it could be enhanced to replace vmdebootstrap and that
my project should thus be dropped. From a cursory skim of the
documentation, it seems to not target bare hardware at all, and that's
one of the things I need myself. If you have opinions on this, tell
me.

My own next actions with regards to vmdebootstrap is to review the
currently open bugs, the code base, and find enough small changes to
make to warrant an upload to change Maintainer/Uploaders.

-- 
I want to build worthwhile things that might last. --joeyh
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/vmdebootstrap-devel/attachments/20160904/3ffc5b37/attachment.sig>


More information about the Vmdebootstrap-devel mailing list