I suggest we decide what we want on the box, set up Ansible as a provisioner, and release side by side on both formats. I work with Packer a LOT in my day job and part of the benefit of that tooling is cross platform builds. With Packer I can write files to generate both dockers and vagrant boxes for dev. If someone can do the Ansible side of this, I can build the Packerfiles. That would make it easy to generate and update the dev standard boxes. 

I have two other thoughts on this: we ought to build the box with a standardized credentialing setup, so that when someone wants to put their creds in, they know how and where to put them (I mean keys or other creds). At my day job where I have done quite a lot of work on infrastructure development environments, I have the vms setup with a folder at ~ called .cloud8 (which is the name of the utility we use for deploys) and all the creds go there. That means I can write automations to a fixed path for credentialling and it gives my devs guidance for where their vital creds are. 

Secondly, I provision infrastructure dev boxes as dependency replicas of the buildserver, which is core to the infrastructure integrity. The same provisioning is done for infrastructure dev as what I use to build the buildserver, but I just don't install the buildserver or the heavy infrastructure security stuffs. This means the dev environment resembles a base server, and any other dependencies added are explicit. It helps to avoid accidental upgrades or configuration conflicts when infrastructure services are released. 

Kudos for considering vms or containers. Infrastructure development environments are usually deeply personal and undocumented, which makes it hard to collaborate and ramp up, not to mention the noise and dependency messes that come out of diverse boxes on a team. Small mistakes are big breaks in infrstructure programming, and a sane dev environment means saner engineers haha!

On Mon, Jun 6, 2016 at 8:59 PM, Ryan Lerch <rlerch@redhat.com> wrote:


On Tue, Jun 7, 2016 at 2:57 PM, Ryan Lerch <rlerch@redhat.com> wrote:


On Thu, Apr 14, 2016 at 5:53 PM, Pierre-Yves Chibon <pingou@pingoured.fr> wrote:
On Thu, Apr 14, 2016 at 11:37:11AM +1000, Ryan Lerch wrote:
>    As a designer, when I jump into doing a UI review, or hacking on the
>    templates / CSS of a new project, one of the most painful steps for me is
>    getting my dev environment set up.
>
>    Most of our webapps do have very good documentation on getting a dev
>    environment set up, but invariably this takes a good chunk of time and
>    fiddling for me (being someone that is not super-familiar with setting up
>    and running the back-ends of webapps). This is especially relevant if what
>    i am trying to fix is just a simple template change, and TBH manually
>    tweaking postgres config files is not really my idea of a good time. :)
>
>    Long story short, i am asking for comments and thoughts on how to make
>    setting up a dev environment simpler and easier (and perhaps even
>    standardized between all our apps).
>
>    I recently started playing with Vagrant, and made this vagrant setup[1]
>    for bootstrapping a bodhi dev envirionment using Vagrant on top of
>    vagrant-libvirt, and it works pretty well for me -- i can just use one
>    command to spin up a new clean instance of a bodhi dev environment, with
>    the DB configured and populated and ready to go. Note that i chose libvirt
>    with Vagrant here, primarily because i am not well versed in Docker, but
>    Docker on Vagrant is possible too.
>
>    [1] - https://gist.github.com/ryanlerch/577eb8cd9d8ff66023cb2f98dc78bfe5

I am all for vagrant or docker for my apps, I do think it would make things way
easier for new contributors to get started.

I know I've been meaning to get faitout on docker so that one could run a local
instance of faitout, but still haven't done it.

On the docker vs vagrant, I have no idea, I must confess I lack knowledge on
both (played w/ docker once over a year ago, never with vagrant).

We can use Docker with vagrant too. But i don't know too much about Docker,
so in my use of Vagrant, i pretty much have stuck with using libvirt with Vagrant
to do what I need to do.

I have a few Vagrant setups working now too, and added a pagure repo with some
So far, I have ones for fedora-hubs, bodhi and a quick one for getting a modern_paste
test instance up and running. I also should note that I am not a sysadmin, so i might
be doing some of the steps in the provisioning a bit weird, so feel free to test these out
and submit a PR or three ;)

cheers,
ryanlerch


 


Pierre



_______________________________________________
infrastructure mailing list
infrastructure@lists.fedoraproject.org
https://lists.fedoraproject.org/admin/lists/infrastructure@lists.fedoraproject.org