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
|
class websites::setup {
# Configure Apache Web Server
$apache_www_folder = "/var/www/data"
$apache_error_folder = "/var/www/error"
$apache_sites_folder = "/var/sites"
$apache_error_dest = "http://${domain}/missing.html"
$drupal_folder = "${apache_www_folder}/drupal"
$default_vhost = $apache_server_name ? {
'' => $hostname,
default => $apache_server_name,
}
# Include apache
include apache
# The needed apache modules
apache::module { "rewrite":
ensure => present,
}
# The needed apache modules
apache::module { "alias":
ensure => present,
}
# Images folder
file { "${apache_www_folder}/images":
ensure => directory,
recurse => true,
purge => true,
force => true,
owner => "root",
group => "root",
# This mode will also apply to files from the source directory
mode => 0644,
# Puppet will automatically set +x for directories
source => "puppet://$server/files/apache/htdocs/images",
}
# Web index
file { "${apache_www_folder}/index.html":
ensure => present,
owner => "root",
group => "root",
mode => 0644,
source => "puppet://$server/files/apache/htdocs/index.html",
}
# Missing page
file { "${apache_www_folder}/missing.html":
ensure => present,
owner => "root",
group => "root",
mode => 0644,
source => "puppet://$server/files/apache/htdocs/missing.html",
}
# Default vhost: can just be applied on the defining host
apache::site { "$default_vhost":
server_alias => "$domain",
docroot => "${apache_www_folder}",
}
# We have to use 'zzz-error' so it will be the last matched vhost
apache::site { "error":
template => 'apache/error.erb',
docroot => "${apache_error_folder}",
filename => 'zzz-error',
}
# Index page for error
file { "${apache_error_folder}/index.html":
ensure => "${apache_www_folder}/index.html",
owner => "root",
group => "root",
force => true,
require => File["$apache_error_folder"],
}
# TODO: this is temporary: remove when all nodes have applied it
# We have to use 'zzz-erro' so it will be the last matched vhost
apache::site { "erro":
ensure => absent,
docroot => '/var/www/erro',
filename => 'zzz-erro',
}
# TODO: this is temporary: remove when all nodes have applied it
file { "/var/www/erro":
ensure => absent,
recurse => true,
force => true,
}
# TODO: this is temporary: remove when all nodes have applied it
# Index page for erro
file { "/var/www/erro/index.html":
ensure => absent,
owner => "root",
group => "root",
force => true,
}
# TODO: this is temporary: remove when all nodes have applied it
file { "/var/www/erro/missing.html":
ensure => absent,
}
}
class websites::hosting inherits websites::setup {
# Include the needed classes for website hosting
include php
include drupal
include gitweb
include trac
include websvn
include moin
include ikiwiki
include pmwiki
}
class websites::hosting::admin inherits websites::setup {
# Include the needed classes for admin interfaces
include trac
include gitweb
}
|