Version information
This version is compatible with:
- Puppet 3.x
- ,
Start using this module
Add this module to your Puppetfile:
mod 'tohuwabohu-drupal', '1.2.1'
Learn more about managing modules with a PuppetfileDocumentation
#drupal
##Overview
Install and manage different versions of Drupal including modules and sites.
##Usage
The module uses Drush and the Drush makefiles to manage a Drupal site
configuration. So everytime any of the Puppet configuration changes, the whole site will be rebuild from ground. To be
able to do this, the site configuration (settings.php
) and files
have to be kept outside of the actual Drupal site.
Furthermore, multi-site configurations are currently not supported.
The structure of the three major properties (modules
, themes
and libraries
) translates directly to the Drush
makefile format. See here for an example of the
possible configuration.
Install Drupal 7 with a bunch of modules, a theme and a library:
drupal::site { 'example.com':
core_version => '7.32',
modules => {
'ctools' => '1.4',
'token' => '1.5',
'pathauto' => '1.2',
'views' => '3.8',
},
themes => {
'omega' => '4.3',
},
libraries => {
'jquery_ui' => {
'download' => {
'type' => 'file',
'url' => 'http://jquery-ui.googlecode.com/files/jquery.ui-1.6.zip',
'md5' => 'c177d38bc7af59d696b2efd7dda5c605',
},
},
},
}
Install Drupal 6:
drupal::site { 'example.com':
core_version => '6.33',
}
Install a module from a custom location:
drupal::site { 'example.com':
modules => {
'cck' => {
'download' => {
'type' => 'file',
'url' => 'http://ftp.drupal.org/files/projects/cck-6.x-2.9.tar.gz',
'md5' => '9e30f22592b7ecf08d020e0c626efc5b',
},
},
},
}
Apply a patch:
drupal::site { 'example.com':
modules => {
'pathauto' => {
'version' => '1.2',
'patch' => [
'https://www.drupal.org/files/pathauto_admin.patch'
],
},
},
}
Install the jquery_ui
library into sites/all/modules/jquery_ui/jquery.ui
as opposed to sites/all/libraries/jquery_ui
.
drupal::site { 'example.com':
libraries => {
'jquery_ui' => {
'download' => {
'type' => 'file',
'url' => 'https://www.dropbox.com/s/kcg4l39c3bqgee1/jquery.ui-1.6.zip',
'md5' => 'c177d38bc7af59d696b2efd7dda5c605',
},
'destination' => 'modules/jquery_ui',
'directory_name' => 'jquery.ui',
},
},
}
Configure the cron job:
drupal::site { 'example.com':
cron_email_address => 'webmaster',
}
Disable the cron job (e.g. if it is managed separately):
drupal::site { 'example.com':
cron_file_ensure => absent,
}
##Limitations
Puppet-specific
- The Puppet module archive is used to download and extract drush
from github. The archvie module caches all files in a directory that is shared between all consumers. Hence the cache
directory needs to be managed in a central location. If you stick with the default configuration for the
cache_dir
, add the following snippet to your Puppet manifest:
file { ['/var/cache/puppet', '/var/cache/puppet/archives']:
ensure => directory,
require => Package['puppet']
}
Drupal-specific
- No multi-sites support
- No backup configuration
- Drupal site configuration (
settings.xml
) has to be provided
The module has been tested on the following operating systems. Testing and patches for other platforms are welcome.
- Debian 6.0 (Squeeze)
- Debian 7.0 (Wheezy)
- Ubuntu 12.04 (Precise Pangolin)
- Ubuntu 14.04 (Trusty Tahr)
##Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
###Development
This project uses rspec-puppet and beaker to ensure the module works as expected and to prevent regressions.
gem install bundler
bundle install --path vendor
bundle exec rake spec
bundle exec rake beaker
(note: see Beaker - Supported ENV variables for a list of environment variables to control the default behaviour of Beaker)
##2015-11-29 - Release 1.2.1 ###Summary
Setting up a site from scratch will no longer fail the Puppet run (issue #3). The pending database updates are now only applied if the site has been fully set up.
Puppet-specific limitations caused by the usage of the archive module have been documented as well (issue #4).
##2015-05-17 - Release 1.2.0 ###Summary
- E-mails generated by the drush cron command now contain the correct link to the Drupal site, not just
http://default/
. - Update to Drush 6.6.0
- Update Vagrant boxes (used for acceptance tests only)
##2015-02-21 - Release 1.1.0 ###Summary
- The Drupal site is put into maintenance mode before outstanding database updates are applied
- Workaround suhosin blocking composer execution on Debian 6
- Support Ubuntu 12.04 and 14.04
##2015-02-01 - Release 1.0.0 ###Summary
Initial release.
- Install composer and Drupal drush to do all the heavy-lifting
- Configure a Drupal site based on the configured modules, themes and libraries
- Set up a cron job to run the Drupal cron once an hour
Dependencies
- camptocamp/archive (0.x)
- ripienaar/module_data (0.x)
- puppetlabs/stdlib (4.x)