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
|
class websites::setup {
# Configure Apache Web Server
$apache_www_folder = "/var/www/data"
$apache_sites_folder = "/var/sites"
$apache_error_dest = "http://${domain}/missing.html"
$drupal_folder = "${apache_www_folder}/drupal"
# Include apache
include apache
# The needed apache modules
apache::module { "rewrite":
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 { "$hostname":
server_alias => "$domain",
docroot => "${apache_www_folder}",
}
# We have to use 'zzz-erro' so it will be the last matched vhost
apache::site { "erro":
source => true,
docroot => '/var/www/erro',
filename => 'zzz-erro',
}
# Index page for erro
file { "/var/www/erro/index.html":
ensure => "${apache_www_folder}/index.html",
owner => "root",
group => "root",
force => true,
require => File["/var/www/erro"],
}
# TODO: this is temporary: remove when all nodes have applied it
file { "/var/www/erro/missing.html":
ensure => absent,
require => File["/var/www/erro"],
}
}
class websites::hosting inherits websites::setup {
# Include the needed classes for website hosting
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
}
|