aboutsummaryrefslogtreecommitdiff
path: root/manifests/role
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2017-11-28 09:31:50 -0200
committerSilvio Rhatto <rhatto@riseup.net>2017-11-28 09:31:50 -0200
commit905a1f9cb1dec8d0e009652605d33ef6207096cc (patch)
tree67ba1f37a5c7bf407f2e6d113faf7bc301f01aff /manifests/role
parent0d0d3b4f09a2e7589694d62ff208d1216d9bacc6 (diff)
downloadpuppet-nodo-905a1f9cb1dec8d0e009652605d33ef6207096cc.tar.gz
puppet-nodo-905a1f9cb1dec8d0e009652605d33ef6207096cc.tar.bz2
Adds nodo::role::dev::drupal7
Diffstat (limited to 'manifests/role')
-rw-r--r--manifests/role/dev/drupal7.pp154
1 files changed, 154 insertions, 0 deletions
diff --git a/manifests/role/dev/drupal7.pp b/manifests/role/dev/drupal7.pp
new file mode 100644
index 0000000..6888866
--- /dev/null
+++ b/manifests/role/dev/drupal7.pp
@@ -0,0 +1,154 @@
+#
+# Class for a Drupal 7 development website
+#
+class nodo::role::dev::drupal7(
+ $project = 'drupal',
+ $project_folder = '/srv/shared', # '/vagrant', '/srv/kvmx'
+ $project_user = 'user', # 'vagrant'
+ $db_name = 'drupal',
+ $db_password = 'hackme',
+) {
+ include nodo::role::dev::virtual
+ include apache
+ include nodo::utils::development::web
+ include nodo::utils::development::php
+ include php::series7
+ include database
+ include drupal
+
+ # In case you want to use sqlite3 db
+ package { 'sqlite3':
+ ensure => installed,
+ }
+
+ # In case you use makefiles
+ package { 'make':
+ ensure => present,
+ }
+
+ # Do not use this password on production machines
+ database::instance { $db_name:
+ password => $db_password,
+ }
+
+ # We could simply using one symlink, but it might incur in
+ # performance penalties by drush recursivelly searching for
+ # plugins in the whole project tree.
+ #file { "${::apache::www_folder}/drupal-7/sites/default":
+ # ensure => $project_folder,
+ # force => true,
+ #}
+
+ #file { "${::apache::www_folder}/drupal-7/sites/${project}":
+ # ensure => $project_folder,
+ # force => true,
+ #}
+
+ file { "${::apache::www_folder}/drupal-7/sites/default":
+ ensure => directory,
+ owner => root,
+ group => root,
+ mode => '0755',
+ require => Exec['drupal-download-7.x'],
+ force => true,
+ }
+
+ file { "${::apache::www_folder}/drupal-7/sites/${project}":
+ ensure => "${::apache::www_folder}/drupal-7/sites/default",
+ force => true,
+ require => File["${::apache::www_folder}/drupal-7/sites/default"],
+ }
+
+ file { "${::apache::www_folder}/drupal-7/sites/default/settings.php":
+ ensure => "${project_folder}/settings.php",
+ owner => root,
+ group => root,
+ force => true,
+ require => File["${::apache::www_folder}/drupal-7/sites/default"],
+ }
+
+ file { "${::apache::www_folder}/drupal-7/sites/default/services.yml":
+ ensure => "${project_folder}/services.yml",
+ owner => root,
+ group => root,
+ force => true,
+ require => File["${::apache::www_folder}/drupal-7/sites/default"],
+ }
+
+ file { "${::apache::www_folder}/drupal-7/sites/default/files":
+ ensure => "${project_folder}/files",
+ owner => root,
+ group => root,
+ force => true,
+ require => File["${::apache::www_folder}/drupal-7/sites/default"],
+ }
+
+ file { "${::apache::www_folder}/drupal-7/sites/default/config":
+ ensure => "${project_folder}/config",
+ owner => root,
+ group => root,
+ force => true,
+ require => File["${::apache::www_folder}/drupal-7/sites/default"],
+ }
+
+ file { "${::apache::www_folder}/drupal-7/sites/default/themes":
+ ensure => "${project_folder}/themes",
+ owner => root,
+ group => root,
+ force => true,
+ require => File["${::apache::www_folder}/drupal-7/sites/default"],
+ }
+
+ file { "${::apache::www_folder}/drupal-7/sites/default/modules":
+ ensure => "${project_folder}/modules",
+ owner => root,
+ group => root,
+ force => true,
+ require => File["${::apache::www_folder}/drupal-7/sites/default"],
+ }
+
+ file { "${::apache::www_folder}/drupal-7/sites/default/libraries":
+ ensure => "${project_folder}/libraries",
+ owner => root,
+ group => root,
+ force => true,
+ require => File["${::apache::www_folder}/drupal-7/sites/default"],
+ }
+
+ file { "${project_folder}":
+ ensure => directory,
+ owner => $project_user,
+ group => $project_user,
+ mode => '0755',
+ }
+
+ file { "${project_folder}/vendor":
+ ensure => directory,
+ owner => $project_user,
+ group => $project_user,
+ mode => '0755',
+ require => File["${project_folder}"],
+ }
+
+ # Symlink to aid development
+ file { "${project_folder}/vendor/drupal-7":
+ ensure => "${::apache::www_folder}/drupal-7",
+ require => File["${project_folder}/vendor"],
+ }
+
+ apache::site { "localhost":
+ ensure => absent,
+ }
+
+ apache::site { "${project}":
+ ensure => present,
+ docroot => "${::apache::www_folder}/drupal-7",
+ server_alias => "localhost ${project} ${project}.localhost ${project}.local",
+ mpm_user => $project_user,
+ mpm_group => $project_user,
+ manage_user => false,
+ manage_docroot => false,
+ use => [ 'Drupal 7' ],
+ require => Exec['drupal-download-7.x'],
+ }
+}