Merge remote-tracking branch 'origin/feature/7461-persistence.conf-in-whisperback...
[tails/lblissett.git] / wiki / src / blueprint / replace_vagrant.mdwn
blob12e3b689bfe9e7f47143c9d9367e379ee68293b0
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. Ideally, our "easy build" instructions should work at least on:
15    - Debian stable + backports
16    - Debian testing
17    - latest Ubuntu LTS
18    - latest Ubuntu non-LTS
20 What we have
21 ============
23 * A Vagrant setup that works on a Wheezy host, and presumably on a sid
24   one too. No idea about Ubuntu 14.04 LTS and upcoming 14.10, let
25   alone other distros or non-Linux OS.
27 * Our Vagrant setup does not work for building on-disk (as opposed as
28   building in RAM) ([[!tails_ticket 7133]]), and our basebox is still
29   based on Squeeze ([[!tails_ticket 7218]]).
30   Both are being addressed.
32 * What our Vagrant thing does:
33   - downloads and checks a build basebox as needed
34   - creates and configures a build VM as needed
35   - fires up a build VM as needed
36   - makes the Git tree available in the build VM (with VirtualBox
37     shared folders)
38   - run the build scripts inside the build VM, taking into account
39     various options (passed as environment variables) to accomodate
40     local needs
41   - retrieve the build artifacts from the build VM onto the host system
43 * Vagrant hasn't been actively maintained in Debian for a while.
44   It was removed from testing, and won't be in Jessie unless someoneā„¢
45   does somethingā„¢ about it. It was just orphaned. It's unclear if
46   someone is going to adopt it.
48 * VirtualBox vs. QEMU/KVM:
49   - One can't run both VirtualBox and QEMU/KVM on the same system.
50   - Vagrant use VirtualBox by default.
51   - Some of us use VirtualBox, some of us use QEMU/KVM.
52   - Our infrastructure (e.g. auto-builder) uses QEMU/KVM.
53   - It seems easier to convert VirtualBox users among us to QEMU/KVM,
54     than the contrary, thanks to the larger feature set (e.g.
55     USB removable devices emulation). GNOME Boxes may make it less
56     painful for some.
57   - There's a vagrant-libvirt plugin available, not in Debian yet, see
58     the corresponding blueprint for packaging and backporting
59     challenges. That's irrelevant, though, if the vagrant package
60     itself is not maintained in Debian.
61   - There's a libvirt driver for VirtualBox too.
63 * Vagrant's upstream provides a .deb, but no proper source package
64   (they're using FPM). There's no strong cryptographic way to
65   authenticate this package after downloading it. We don't want to
66   rely on that package, nor to advertise it, for security reasons, and
67   also due to our policy to do things with/in Debian.
69 * Docker is seeing a lot of traction lately. It might be a better bet
70   than Vagrant on the long-term.
72 Plan
73 ====
75 * Short-term: fix the Vagrant situation for the most important
76   usecases ([[!tails_ticket 7526]])
77 * Mid-term: fix the situation for real, starting with evaluating
78   Docker ([[!tails_ticket 7527]], [[blueprint/evaluate_Docker]])