Update website PO files.
[tails-test.git] / wiki / src / blueprint / replace_vagrant.mdwn
blobbc17554ceb842faa7ded68dfda096a16b48811e2
1 [[!meta title="Replacing Vagrant?"]]
3 [[!toc levels=2]]
5 **Main ticket**: [[!tails_ticket 7526]]
7 Goals of our Vagrant thing
8 ==========================
10 1. Make it easy to new contributors to build a Tails ISO.
11 2. Improve consistency between our various ways of building Tails ISOs
12    (Tails developers currently use at least 3 different build setups,
13    and our auto-builder yet another one).
14 3. Our "easy build" instructions must work at least on:
15    - Debian stable + backports
16    - Debian testing
17 4. Ideally, our "easy build" instructions should also work at least on:
18    - latest Ubuntu LTS
19    - latest Ubuntu non-LTS
21 What we have
22 ============
24 * A Vagrant setup that works on a Wheezy host, and presumably on a sid
25   one too. No idea about Ubuntu 14.04 LTS and upcoming 14.10, let
26   alone other distros or non-Linux OS.
28 * Our Vagrant setup has many problems: [[!tails_ticket 7527]].
30 * What our Vagrant thing does:
31   - downloads and checks a build basebox as needed
32   - creates and configures a build VM as needed
33   - fires up a build VM as needed
34   - makes the Git tree available in the build VM (with VirtualBox
35     shared folders)
36   - run the build scripts inside the build VM, taking into account
37     various options (passed as environment variables) to accomodate
38     local needs
39   - retrieve the build artifacts from the build VM onto the host system
41 * Vagrant hasn't been actively maintained in Debian for a while.
42   It'll be part of Jessie, but that was by a very short margin.
44 * VirtualBox vs. QEMU/KVM:
45   - One can't run both VirtualBox and QEMU/KVM on the same system.
46   - Vagrant use VirtualBox by default.
47   - Some of us use VirtualBox, some of us use QEMU/KVM.
48   - Our infrastructure (e.g. auto-builder) uses QEMU/KVM.
49   - It seems easier to convert VirtualBox users among us to QEMU/KVM,
50     than the contrary, thanks to the larger feature set (e.g.
51     USB removable devices emulation). GNOME Boxes may make it less
52     painful for some.
53   - There's a vagrant-libvirt plugin available, not in Debian yet, see
54     the corresponding blueprint for packaging and backporting
55     challenges. That's irrelevant, though, if the vagrant package
56     itself is not very well maintained in Debian.
57   - There's a libvirt driver for VirtualBox too.
59 * Vagrant's upstream provides a .deb, but no proper source package
60   (they're using FPM). There's no strong cryptographic way to
61   authenticate this package after downloading it. We don't want to
62   rely on that package, nor to advertise it, for security reasons, and
63   also due to our policy to do things with/in Debian.
65 * Docker is seeing a lot of traction lately. It might be a better bet
66   than Vagrant on the long-term.
68 What others use
69 ===============
71 * Ubuntu cloud images are built with vmbuilder, which works basically
72   at the same level as live-build. It might be useful to create and
73   maintain a builder basebox, but it doesn't provide the same glue as
74   Vagrant for downloading, managing, booting and file sharing.
75 * Same for other building cloud images for other operating systems,
76   apparently:
77   <http://docs.openstack.org/image-guide/content/ch_creating_images_automatically.html>
78 * [Vortex](https://github.com/websecurify/node-vortex/) is similar
79   to Vagrant. Only supports VirtualBox (and the Amazon cloud) as
80   of 20141130.
82 Plan
83 ====
85 * Short-term: fix the Vagrant situation for the most important
86   usecases ([[!tails_ticket 7527]])
87 * Mid-term: fix the situation for real, starting with evaluating
88   Docker ([[!tails_ticket 7530]], [[blueprint/evaluate_Docker]])