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!