
The puppet-drush module that the puppet-drupal module depends on has some quirks on puppet 4. First, with the new ordering algorithm, it's not guaranteed that the drush repo and the composer installation will happen in the same order as before. We can fix that without touching the drush module itself by creating resource orderings from the drupal::drush class. Second, on puppet 3 the empty string '' was interpreted as falsey, so you could expect `if '' {}` to evaluate as false. On puppet 4, it's interpreted as truthy, and for the drush module using '' as the default for the git_tag parameter causes the drush $git_ref variable to be set to the empty string which causes the module to stay on the master branch instead of checking out the 6.x branch. There's no semantic difference between the git_branch and git_tag parameter, so we'll just set git_tag to the same as git_branch. Change-Id: I3acbda4edd546b4f145c9991f18ca80bb3e2171e
License
Copyright 2013 OpenStack Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Drupal module for Puppet
This module manages Drupal on Linux distros.
Description
Usage
drupal
Install and configure a Drupal site, including Apache vhost entry, MySQL database, Pear and drush cli tool.
Example:
class { 'drupal':
site_name => 'www.example.com',
site_docroot => '/srv/vhosts/example.com',
site_mysql_host => 'localhost',
site_mysql_user => 'myuser',
site_mysql_password => 's3cretPassw0rd',
site_mysql_database => 'example',
site_vhost_root => '/srv/vhosts',
site_staging_tarball => 'example-dev.tar.gz',
site_admin_password => 'adminadmin',
site_build_reponame => 'example-master',
site_makefile => 'build-example.make',
site_repo_url => 'https://git.example.com/repo/example',
site_profile => 'standard',
site_base_url => 'http://example.com',
...
}
Build process:
- build a distribution tarball (drupal::distbuild)
- deploy a site from scratch (drupal:sitedeploy)
drupal::distbuild
Build a distribution from a git repository, using drush make command. Check out the git repository under site_sandbox_root and compare head commit with latest deployed version. If version is different, clean up the site_deploy_flagfile, and drush make building process start. The flag file site_build_flagfile always contains the version of built repository.
Example:
distbuild { "distbuild-${site_name}":
site_sandbox_root => '/srv/sandbox',
site_staging_root => '/srv/sandbox/release',
site_repo_url => 'https://git.example.com/repo/example',
site_build_repo_name => 'example-master',
site_staging_tarball => 'example-dev.tar.gz',
site_build_flagfile => '/tmp/drupal-site-build',
site_deploy_flagfile => '/tmp/drupal-site-deploy',
site_makefile => 'build-example.make',
...
}
Directory structure: /srv/sandbox/example-master local git repository clone build-example.make drupal-org-core.make drupal-org.make example.info example.install example.profile /srv/sandbox/release distribution tarball directory example-dev.tar.gz
Flag files: /tmp/drupal-site-build Holds the version of information of latest successfull build # pack-refs with: peeled df23bc9510ac8406c33f896f824997a79d20d27d refs/remotes/origin/master
/tmp/drupal-site-deploy If missing, drupal:sitedeploy triggers a new deployment process.
drupal:sitedeploy
Deploy and install a new site based on a previously built distribution tarball, using drupal_site_deploy.sh script.
Example:
sitedeploy { "sitedeploy-${site_name}":
site_docroot => '/srv/vhosts/example.com',
site_staging_root => '/srv/sandbox/release',
site_staging_tarball => 'example-dev.tar.gz',
site_deploy_flagfile => '/tmp/drupal-site-deploy',
site_name => $site_name,
site_profile => 'standard',
site_mysql_host => 'localhost',
site_mysql_user => 'myuser',
site_mysql_password => 's3cretPassw0rd',
site_mysql_database => 'example',
site_admin_password => 'adminadmin',
site_base_url => 'http://example.com',
...
}
Directory structure: /srv/vhosts/example.com drupal site root /etc/drupal example.com.config drupal site deploy script configuration