aboutsummaryrefslogtreecommitdiff
path: root/manifests/init.pp
blob: c4a4e3b2acac5bcfbdcf999ee43c3dd398e5663f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
class drupal(
  $folder = '/var/www/data/drupal',
  $sites_folder = '/var/sites',
  $www_folder = '/var/www/data'
) {
  include pear

  # We use drupal source from upstream 
  package { "drupal6":
      ensure => absent,
  }

  # Needed packages
  package { [ "drush", "php5-gd", "php5-imagick" ]:
      ensure => installed,
  }

  # Drush config folder
  file { '/etc/drush':
    ensure => directory,
    owner  => root,
    group  => root,
    mode   => 0644,
  }

  # Drush default configuration
  file { '/etc/drush/drushrc.php':
    ensure  => present,
    owner   => root,
    group   => root,
    mode    => 0644,
    source  => 'puppet:///modules/drupal/drushrc.php',
    require => File['/etc/drush'],
  }

  # Drupal management script
  file { "/usr/local/sbin/drupal":
    ensure  => present,
    content => template('drupal/drupal.sh.erb'),
    owner   => root,
    group   => root,
    mode    => 755,
  }

  # Run drupal cron
  cron { "drupal-cron":
    command  => "/usr/local/sbin/drupal cron &> /dev/null",
    user     => root,
    hour     => "*/1",
    minute   => "15",
    ensure   => present,
    require  => File['/usr/local/sbin/drupal'],
  }

  # Keep themes and modules up-to-date
  cron { "drupal-update":
    command  => "/usr/local/sbin/drupal cron-update",
    user     => root,
    # Run once a week after security releases (usually on Wednesdays)
    # weekday  => 4,
    hour     => "02",
    minute   => "30",
    ensure   => present,
  }

  # Drupal shared folder
  file { "/usr/local/share/drupal":
    ensure  => directory,
    owner   => root,
    group   => root,
    mode    => 755,
  }

  # Drupal 6 makefile
  file { "/usr/local/share/drupal/drupal6.make":
    ensure  => present,
    owner   => root,
    group   => root,
    mode    => 644,
    source  => "puppet:///modules/drupal/drupal6.make",
    require => File['/usr/local/share/drupal'],
  }

  # Drupal 7 makefile
  file { "/usr/local/share/drupal/drupal7.make":
    ensure  => present,
    owner   => root,
    group   => root,
    mode    => 644,
    source  => "puppet:///modules/drupal/drupal7.make",
    require => File['/usr/local/share/drupal'],
  }

  # Drupal 6 theme makefile
  file { "/usr/local/share/drupal/themes6.make":
    ensure  => present,
    owner   => root,
    group   => root,
    mode    => 644,
    source  => "puppet:///modules/drupal/themes6.make",
    require => File['/usr/local/share/drupal'],
  }

  # Drupal 7 theme makefile
  file { "/usr/local/share/drupal/themes7.make":
    ensure  => present,
    owner   => root,
    group   => root,
    mode    => 644,
    source  => "puppet:///modules/drupal/themes7.make",
    require => File['/usr/local/share/drupal'],
  }

  # See https://drupal.org/SA-CORE-2013-003
  file { "/tmp/.htaccess":
    ensure  => present,
    owner   => root,
    group   => root,
    mode    => 644,
    source  => "puppet:///modules/drupal/htaccess",
  }

  file { [ '/var/www/data/drupal-6/backup', '/var/www/data/drupal-7/backup' ]:
    ensure  => absent,
    recurse => true,
    force   => true,
    backup  => false,
  }
}