Jeff Geerling recently announced that the DrupalVM project is officially archived. DrupalVM was crucial in helping provide standardized local development for Drupal developers. DrupalVM was a customized Vagrant setup with batteries-included tooling powered by Jeff's many Ansible roles.
For me, it's wild to think back to 2014 when DrupalVM was first created. The ways we handled local development and all of the emerging technologies. Virtual machines ruled the land, and Vagrant empowered a new way to manage headless virtual machine instances. To use Docker on macOS, you had to use boot2docker to create a virtual machine.
I had been using Vagrant with Puppet for provisioning. Does anyone else remember PuPHPet? It was a UI for configuring Vagrant builds with Puppet provisioning. I then had to learn Puppet more in-depth when I started working at Gaggle, which the sysadmins used to manage infrastructure. Part of that infrastructure was the Aegir-powered hosting for our software-as-a-service powered by Drupal. (I loved it. Drupal as a SaaS hosted and managed by Drupal.) Puppet wasn't very enjoyable, but I had to use it. Then I discovered Ansible, thanks to Jeff Geerling's work creating Ansible roles for his book Ansible for DevOps and DrupalVM.
I personally never used DrupalVM. But Jeff Geerling's work on his Ansible roles and including them with DrupalVM provided an amazing learning tool. I built a local development environment for our team that used Vagrant and Ansible to use Aegir locally to mimic production rollouts and tooling for Aegir. This was also inspired by the Valkyrie project, another Vagrant and Ansible development environment specifically for using Aegir. There were a lot of problems that needed to be solved around disk mounts and NFS volumes. Along the way, I wrote even more projects powered by Jeff's Ansible work and examples I found in DrupalVM.
- A tightly coupled build to Platform.sh projects
- A Drupal multisite contrib development environment
- A sprint-kit to streamline Panopoly contribution (Vagrant for headless and Packer for UI)
Unfortunately, as time carried on, Docker won my preference. Vagrant machines were taking up too much disk space. It took too long to destroy virtual machines and bring them back compared to Docker. The boot2docker project had been shifted to docker-machine and was eventually replaced with the beginnings of Docker Desktop. I still use many of Jeff's Ansible roles for managing remote servers for projects not hosted on a platform-as-a-service or containerized.
DrupalVM may be deprecated and retired. But the underlying Ansible roles and Vagrant as DevOps tools continue. So does Jeff Geerling's work; and his impact on hundreds (tens of, thousands of, who knows how large) of developers. Thanks for everything you've done and for enabling me to solve some serious DevOps problems.
If you're curious about what I use now, I use DDEV. It matched most with something similar I had built for myself.
I'm available for one-on-one consulting calls – click here to book a meeting with me 🗓️
Want more? Sign up for my weekly newsletter