Colleen Murphy 601a5cf31f Fix $site_root and $site_docroot parameters
The $site_root parameter must be set in order for the file resource
ensuring it to work. However, the best default for it depends on the
$site_name and $site_vhosts_root parameter. Class parameter defaults
behave strangely if they depend on another class parameter: they take
on the value of whatever the user has set, not the default value. So if
we want the default value of $site_root to be
"${site_vhosts_root}/${site_name}", and we want it to be acceptable to
use the default value of 'www.example.com' as the site name, then we
have to set the default in the body of the class, not in the parameters
list. The same is true for the $site_docroot parameter.

This patch leaves the official default of $site_root as undef but
conditionally sets a preferred default of "${site_vhosts_root}/${site_name}" in
the body of the class. Since variables in puppet are immutable we need
to assign this value to a new variable and fix the references to this
variable throughout hte module.

This patch changes the official default of $site_docroot from
"${site_root}/w" to undef, because that default would have different
behavior depending on whether the user had set $site_root or not. We
then conditionally set it to the right default in the body of the class
and update references to that variable. Also changed the Directory key
for the docroot in the vhost template to refer to the $docroot
parameter passed in to the httpd::vhost type rather than the
$_site_docroot value from the class, which evaluates to the same value
but makes the Directory tag consistent with the Docroot declaration
above it.

Change-Id: Iaed65b20816c0b4f6fd34f7e0ef07f906bb9750e
2015-10-19 08:45:22 -07:00
2015-07-23 12:53:03 -07:00
2015-07-23 12:53:03 -07:00
2015-01-29 22:56:52 +00:00
2015-07-16 15:48:45 -04:00
2013-09-17 11:43:00 +02:00

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

Description
RETIRED, Puppet module for groups drupal portal
Readme 324 KiB