On Tue, Sep 25, 2018 at 4:46 PM Randy Barlow
<bowlofeggs(a)fedoraproject.org> wrote:
On Tue, 2018-09-25 at 14:18 +0000, Máirín Duffy wrote:
> - Is running a lightweight local VM for web development a usecase we
> want to support? Is it dare I ask important?
> - If so, is what I ended up setting up what we want people in that
> usecase to do? (E.g. use Fedora cloud base image, set up in virt-
> manager or boxes, using virt-customize to remove cloud-init and
> configure login password?
Hi Máirín!
Have you considered using Vagrant for this? It makes it easy to script
a reproducible development virtual machine, so that you can quickly
destroy and recreate it on demand. I use it to develop Bodhi and I've
been mostly pretty happy with it (it does have some weird warts too,
but mostly works well). Bodhi uses Vagrant to start up the guest, and
then Vagrant asks Ansible to configure it to be a Bodhi dev box. Here's
the file that makes it go:
https://github.com/fedora-infra/bodhi/blob/3.10.0/Vagrantfile
The playbook Vagrant runs is here:
https://github.com/fedora-infra/bodhi/tree/3.10.0/devel/ansible
And here are instructions that describe what it's like for a developer
to use it:
https://github.com/fedora-infra/bodhi/blob/3.10.0/docs/developer/vagrant.rst
I recommend this or something like this over making a more "permanent"
VM, because it makes it easy to share the valuable development
environment with others (or even with yourself on multiple machines),
and because it makes it a non-issue when the guest gets damaged in some
way (rather than spending time debugging a guest I've broken, I just
vagrant destroy && vagrant up, go make some coffee, and when I'm back I
have a fresh working instance again).
OK. So this suggestion is well intentioned. It's even a good one,
IMHO. However, look at this from a non-Fedora view. The conversation
went like this:
<random dev> Hey, I'm trying to do this and all the documented Fedora
things are really hard or poorly documented. Is this how Fedora
should work?
<Fedora dev> Oh, use this thing that *Fedora doesn't produce* in a
manner that *Fedora doesn't document* instead. It's much better!
That is a really bad anti-pattern.
If we think Vagrant is better for this kind of work, we should be
actively looking at producing vagrant images instead. Then people
would have the documentation and tools they need. If we don't think
Vagrant is a good solution here, we should be working to improve the
solutions we have and documentation for them to make them less
confusing. If we do neither of those things, <random dev> is going to
be left wondering why they used Fedora in the first place.
josh