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
|
# template_mode:
# - php: for a default php application
# - static: for a static application (default)
# - perl: for a mod_perl application
# - php_joomla: for a joomla application
#
# domainalias:
# - absent: no domainalias is set (*default*)
# - www: domainalias is set to www.$domain
# - else: domainalias is set to that
#
# ssl_mode: wether this vhost supports ssl or not
# - false: don't enable ssl for this vhost (default)
# - true: enable ssl for this vhost
# - force: enable ssl and redirect non-ssl to ssl
# - only: enable ssl only
#
define apache::vhost::template(
$ensure = present,
$path = 'absent',
$path_is_webdir = false,
$logpath = 'absent',
$domain = 'absent',
$domainalias = 'absent',
$server_admin = 'absent',
$allow_override = 'None',
$php_upload_tmp_dir = 'absent',
$php_session_save_path = 'absent',
$cgi_binpath = 'absent',
$do_includes = false,
$options = 'absent',
$additional_options = 'absent',
$default_charset = 'absent',
$php_use_smarty = false,
$php_use_pear = false,
$php_safe_mode = true,
$run_mode = 'normal',
$run_uid = 'absent',
$run_gid = 'absent',
$template_mode = 'static',
$ssl_mode = false,
$mod_security = true,
$use_mod_macro = false,
$htpasswd_file = 'absent',
$htpasswd_path = 'absent',
$ldap_auth = false,
$ldap_user = 'any'
){
if $mod_security {
include mod_security
}
$real_path = $path ? {
'absent' => $operatingsystem ? {
openbsd => "/var/www/htdocs/$name",
default => "/var/www/vhosts/$name"
},
default => $path
}
if $path_is_webdir {
$documentroot = "$real_path"
} else {
$documentroot = "$real_path/www"
}
$logdir = $logpath ? {
'absent' => "$real_path/logs",
default => $logpath
}
$servername = $domain ? {
'absent' => $name,
default => $domain
}
$serveralias = $domainalias ? {
'absent' => '',
'www' => "www.${servername}",
default => $domainalias
}
if $htpasswd_path == 'absent' {
$real_htpasswd_path = "/var/www/htpasswds/$name"
} else {
$real_htpasswd_path = $htpasswd_path
}
case $run_mode {
'itk': {
case $run_uid {
'absent': { fail("you have to define run_uid for $name on $fqdn") }
}
case $run_gid {
'absent': { fail("you have to define run_gid for $name on $fqdn") }
}
}
}
# set default dirs for templates
# php upload_tmp_dir
case $php_upload_tmp_dir {
'absent': {
$real_php_upload_tmp_dir = "/var/www/upload_tmp_dir/$name"
}
default: { $real_php_upload_tmp_dir = $php_upload_tmp_dir }
}
# php session_save_path
case $php_session_save_path {
'absent': {
$real_php_session_save_path = "/var/www/session.save_path/$name"
}
default: { $real_php_session_save_path = $php_session_save_path }
}
apache::vhost::file{$name:
ensure => $ensure,
content => template("apache/vhosts/$template_mode/$operatingsystem.erb"),
do_includes => $do_includes,
htpasswd_file => $htpasswd_file,
htpasswd_path => $htpasswd_path,
use_mod_macro => $use_mod_macro,
}
}
|