Puppet + Vagrant + Drupal = Dropfort Environments
April 21, 2015We’re finally ready to roll out our newest feature; Dropfort Environments. This brings integration between Dropfort, Vagrant and Docker to your Drupal development workflow.
So what does this mean? Glad you asked! As a developer, you’ll have access to configurable development virtual machines with all your tools and code ready to go. You can also add-on any extra tools you’ll need to do your work (e.g. compass, Grunt, NodeJS). You simply bring up the machine you need to do your work. You can leave things as is and safely move between tasks as required. Want to work on a new feature? Bring up your bleeding edge code on one vm. Need to debug a production bug? Bring up your production mirror vm and sync data from production to find the issue. No more running MAMP or XAMP or manually configuring a vm to do multiple tasks as once work. You can have each environment tailored to the task at hand.
As a sysadmin, you can define “Machine Templates” for your developers to use. You can pre-configure machines for your developers to use for different tasks (e.g. Ubuntu server with Drupal Commerce, CentOS 7 with OpenScholar). You have complete control over the configuration and can deploy updates to all developers from a single interface. Avoid the dreaded “it works on my machine” by standardizing your development environment for all developers. My personal favourite feature is as updates are required you can push those changes to everyone at once and keep everyone on the same page.
Under the hood, Dropfort Environments uses a Puppet Master to track and store your virtual machine configuration. That means you can manage all the instances of your machines from Dropfort and have updates be deployed to your development team automatically. Any option available to Puppet has been exposed through the Dropfort Environments UI.
Getting this feature to work took a lot of effort and has a lot of moving parts. We had to write both Drupal and Puppet modules to get the job done, build integration between Puppet and Drupal and then mix Vagrant and Docker into the whole thing. We’ll be writing about our path to here in the next Forging Dropfort blog post. If you’re curious about the Puppet side of things, check out our Drush and Drupal Site-Install Puppet modules on GitHub. They’re completely open source and can be used outside of Dropfort if you like.
- https://github.com/coldfrontlabs/coldfrontlabs-drush
- https://github.com/coldfrontlabs/coldfrontlabs-drupalsi
We hope to publish them to the Puppet Forge soon.
We’re really excited about this feature and hope you’ll give us feedback on how to make it better, what works well (and what doesn’t work so well) and of course be on the lookout for bugs. Right now we’re limiting the machine definitions to “development” environments only but we’re working hard to bring “testing” and “production” environment management to Dropfort as well.
Give it a try today!
P.S. We’re recording some tutorial videos on how to get started. Those should be up in the next day or so. We’ll post an update when they are available.
Add new comment