/[adm]/puppet/modules/apache/manifests/init.pp
ViewVC logotype

Contents of /puppet/modules/apache/manifests/init.pp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2225 - (show annotations) (download)
Sun Jan 8 22:24:56 2012 UTC (12 years, 2 months ago) by misc
File size: 6854 byte(s)
reindent, and refactor the module, using a new define "apache::config"
to avoid duplication of configuration
1 class apache {
2
3 define config($content) {
4 file { $name:
5 content => $content
6 require => Package["apache-conf"],
7 notify => Service["apache"],
8 }
9 }
10
11 class base {
12
13 # number of time the log file are rotated before being removed
14 $httpdlogs_rotate = "24"
15
16 $apache_user = 'apache'
17 $apache_group = 'apache'
18
19 package { "apache-mpm-prefork":
20 alias => apache,
21 }
22
23 package { "apache-conf": }
24
25 service { httpd:
26 alias => apache,
27 ensure => running,
28 subscribe => [ Package['apache-mpm-prefork'] ],
29 }
30
31 apache::config {
32 "/etc/httpd/conf.d/customization.conf":
33 content => template("apache/customization.conf");
34 "/etc/httpd/conf/vhosts.d/00_default_vhosts.conf":
35 content => template("apache/00_default_vhosts.conf");
36 }
37
38 file { "/etc/logrotate.d/httpd":
39 content => template("apache/logrotate")
40 }
41 }
42
43 class mod_php inherits base {
44 $php_date_timezone = "UTC"
45
46 package { "apache-mod_php": }
47
48 apache::config { "/etc/httpd/conf.d/mod_php.conf":
49 content => template('apache/mod_php.conf'),
50 }
51 }
52
53 class mod_perl inherits base {
54 package { "apache-mod_perl": }
55 }
56
57 class mod_fcgid inherits base {
58 package { "apache-mod_fcgid": }
59 }
60
61 class mod_fastcgi inherits base {
62 package { "apache-mod_fastcgi": }
63 }
64
65 class mod_ssl inherits base {
66 file { "/etc/ssl/apache/":
67 ensure => directory
68 }
69
70 package { "apache-mod_ssl": }
71
72 apache::config {
73 '/etc/httpd/conf/vhosts.d/01_default_ssl_vhost.conf':
74 content => template("apache/01_default_ssl_vhost.conf");
75 "/etc/httpd/conf.d/ssl.conf":
76 content => template("apache/ssl.conf");
77 }
78 }
79
80 class mod_wsgi inherits base {
81 package { "apache-mod_wsgi": }
82
83 file { "/usr/local/lib/wsgi":
84 ensure => directory,
85 }
86
87 apache::config { "/etc/httpd/conf.d/mod_wsgi.conf":
88 content => template('apache/mod_wsgi.conf'),
89 }
90 }
91
92 class mod_proxy inherits base {
93 package { "apache-mod_proxy": }
94 }
95
96 class mod_public_html inherits base {
97 package { "apache-mod_public_html": }
98 }
99
100 class mod_deflate inherits base {
101 package { "apache-mod_deflate": }
102 }
103
104 class mod_geoip inherits base {
105 package { "apache-mod_geoip": }
106 }
107
108 define vhost_base($content = '',
109 $location = '/dev/null',
110 $use_ssl = false,
111 $vhost = false,
112 $aliases = {},
113 $server_aliases = [],
114 $access_logfile = false,
115 $error_logfile = false,
116 $options = [],
117 $enable_public_html = false) {
118 include apache::base
119 $httpd_logdir = "/var/log/httpd"
120
121 if ! $vhost {
122 $real_vhost = $name
123 } else {
124 $real_vhost = $vhost
125 }
126
127 if ! $access_logfile {
128 $real_access_logfile = "$httpd_logdir/${real_vhost}-access_log"
129 } else {
130 $real_access_logfile = $access_logfile
131 }
132 if ! $error_logfile {
133 $real_error_logfile = "$httpd_logdir/${real_vhost}-error_log"
134 } else {
135 $real_error_logfile = $error_logfile
136 }
137
138 if $use_ssl {
139 include apache::mod_ssl
140 if $wildcard_sslcert != 'true' {
141 openssl::self_signed_cert{ "$real_vhost":
142 directory => "/etc/ssl/apache/",
143 before => File["$filename"],
144 }
145 }
146 }
147
148 if $enable_public_html {
149 include apache::mod_public_html
150 }
151
152 $filename = "$name.conf"
153 apache::config { "/etc/httpd/conf/vhosts.d/$filename":
154 content => template("apache/vhost_base.conf")
155 }
156 }
157
158 define vhost_redirect_ssl() {
159 vhost_base { "redirect_ssl_$name":
160 vhost => $name,
161 content => template("apache/vhost_ssl_redirect.conf")
162 }
163 }
164
165 define vhost_catalyst_app($script, $location = '', $process = 4, $use_ssl = false, $vhost = false) {
166
167 include apache::mod_fastcgi
168 vhost_base { $name:
169 vhost => $vhost,
170 use_ssl => $use_ssl,
171 content => template("apache/vhost_catalyst_app.conf"),
172 }
173 }
174
175 define vhost_django_app($module = false, $module_path = false, $use_ssl = false, $aliases= {}) {
176 include apache::mod_wsgi
177 vhost_base { $name:
178 use_ssl => $use_ssl,
179 content => template("apache/vhost_django_app.conf"),
180 aliases => $aliases,
181 }
182
183 # module is a ruby reserved keyword, cannot be used in templates
184 $django_module = $module
185 file { "$name.wsgi":
186 path => "/usr/local/lib/wsgi/$name.wsgi",
187 mode => 755,
188 notify => Service['apache'],
189 content => template("apache/django.wsgi"),
190 }
191 }
192
193 define vhost_wsgi($wsgi_path, $aliases = {}, $server_aliases = []) {
194 include apache::mod_wsgi
195 vhost_base { $name:
196 aliases => $aliases,
197 server_aliases => $server_aliases,
198 content => template("apache/vhost_wsgi.conf"),
199 }
200 }
201
202 define vhost_other_app($vhost_file) {
203 include apache::base
204 apache::config { "/etc/httpd/conf/vhosts.d/$name.conf":
205 content => template($vhost_file),
206 }
207 }
208
209 define vhost_simple($location) {
210 include apache::base
211 vhost_base { $name:
212 location => $location,
213 }
214 }
215
216 define vhost_redirect($url,
217 $vhost = false,
218 $use_ssl = false) {
219 include apache::base
220 vhost_base { $name:
221 use_ssl => $use_ssl,
222 vhost => $vhost,
223 content => template("apache/vhost_redirect.conf"),
224 }
225 }
226
227 define vhost_reverse_proxy($url,
228 $vhost = false,
229 $use_ssl = false) {
230 include apache::mod_proxy
231 vhost_base { $name:
232 use_ssl => $use_ssl,
233 vhost => $vhost,
234 content => template("apache/vhost_reverse_proxy.conf")
235 }
236 }
237
238 define webapp_other($webapp_file) {
239 include apache::base
240 $webappname = $name
241 apache::config { "/etc/httpd/conf/webapps.d/$webappname.conf":
242 content => template($webapp_file),
243 }
244 }
245 }

  ViewVC Help
Powered by ViewVC 1.1.30