Drupal 7 Puppet Module

September 11, 2013
Development, Drupal

Vagrant logo

Drupal is a complex content management framework and requires a lot of time to install and configure by hand. To save our clients time and money, New Media Campaigns uses Vagrant and Puppet to automate Drupal 7 website installation and configuration. By installing and applying our Drupal 7 Puppet module, you can have a brand new Drupal 7 website up and running in just 5 minutes.

Vagrant is a tool to "create and configure lightweight, reproducible, and portable development environments." Vagrant uses Puppet manifest files to configure each development environment.


Our Drupal 7 Puppet module makes several assumptions:

  1. You have these binaries: wget and unzip;
  2. You have a MySQL database;
  3. You have PHP 5.3 or newer with these extensions: apc, PDO, and pdo_mysql;


  1. Download and unzip our Drupal 7 Puppet module (link below);
  2. Move modules/drupal/ into your Puppet modules directory;
  3. Add include drupal to your Puppet manifest;
  4. Configure Drupal 7 Puppet module settings (see "Setup");


Before you can use our Drupal 7 Puppet module, you must configure its settings in modules/drupal/manifests/variables.pp. Check each setting and ensure its value is appropriate for your operating system. All settings are required.


Our Drupal 7 Puppet module has a defined list of Drupal modules that it will install. You can easily add or remove these modules in modules/drupal/manifests/init.pp:23.

Puppet Dependencies

It may be appropriate to define dependencies in your Puppet manifest so that our Drupal 7 Puppet module is applied only after a previous Puppet resource is available. We'll leave this to your discretion.


Our Drupal 7 Puppet module is open source, and we welcome your contributions to help make it better! To contribute:

  1. Fork our Drupal 7 Puppet module repository;
  2. Create a new feature branch for each improvement;
  3. Send a pull request from each feature branch to our master branch;

It is very important to separate new features or improvements into separate feature branches, and to send a pull request for each branch. This allows us to review and pull in new features or improvements individually.


Download our Drupal 7 Puppet module here:


Leave the first comment