]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/apache2/manifests/init.pp
actually make case statement useful
[dsa-puppet.git] / modules / apache2 / manifests / init.pp
1 class apache2 {
2         include munin-node::apache
3
4         package {
5                 "apache2": ensure => installed;
6                 "logrotate": ensure => installed;
7         }
8
9         case $php {
10                 "true": { package {
11                                 "php5-suhosin": ensure => installed;
12                         }
13                 }
14         }
15
16
17         define activate_apache_site($ensure=present, $site=$name) {
18                 case $site {
19                         "": { $base = $name }
20                         default: { $base = $site }
21                 }
22
23                 case $ensure {
24                         present: {
25                                 file { "/etc/apache2/sites-enabled/$name":
26                                          ensure => "/etc/apache2/sites-available/$base",
27                                          require => Package["apache2"],
28                                          notify => Exec["reload-apache2"];
29                                 }
30                         }
31                         absent: {
32                                 file { "/etc/apache2/sites-enabled/$name":
33                                          ensure => $ensure,
34                                          notify => Exec["reload-apache2"];
35                                 }
36                         }
37                         default: { err ( "Unknown ensure value: '$ensure'" ) }
38                 }
39         }
40
41         define enable_module($ensure=present) {
42                 case $ensure {
43                         present: {
44                                 exec { "/usr/sbin/a2enmod $name":
45                                         unless => "/bin/sh -c '[ -L /etc/apache2/mods-enabled/${name}.load ]'",
46                                         notify => Exec["force-reload-apache2"],
47                                 }
48                         }
49                         absent: {
50                                 exec { "/usr/sbin/a2dismod $name":
51                                         onlyif => "/bin/sh -c '[ -L /etc/apache2/mods-enabled/${name}.load ]'",
52                                         notify => Exec["force-reload-apache2"],
53                                 }
54                         }
55                         default: { err ( "Unknown ensure value: '$ensure'" ) }
56                  }
57         }
58
59         enable_module {
60                 "info":;
61                 "status":;
62         }
63
64         activate_apache_site {
65                 "00-default": site => "default-debian.org";
66                 "000-default": ensure => absent;
67         }
68
69         case $php5suhosin {
70                 "true": { file { "/etc/php5/conf.d/suhosin.ini":
71                                         source  => [ "puppet:///apache2/per-host/$fqdn/etc/php5/conf.d/suhosin.ini",
72                                                      "puppet:///apache2/common/etc/php5/conf.d/suhosin.ini" ],
73                                         require => Package["apache2", "php5-suhosin"],
74                                         notify  => Exec["force-reload-apache2"];
75                                }
76                  }
77         }
78
79         file {
80                 "/etc/apache2/conf.d/ressource-limits":
81                         content => template("apache2/ressource-limits.erb"),
82                         require => Package["apache2"],
83                         notify  => Exec["reload-apache2"];
84                 "/etc/apache2/conf.d/security":
85                         source  => [ "puppet:///apache2/per-host/$fqdn/etc/apache2/conf.d/security",
86                                      "puppet:///apache2/common/etc/apache2/conf.d/security" ],
87                         require => Package["apache2"],
88                         notify  => Exec["reload-apache2"];
89                 "/etc/apache2/conf.d/local-serverinfo":
90                         source  => [ "puppet:///apache2/per-host/$fqdn/etc/apache2/conf.d/local-serverinfo",
91                                      "puppet:///apache2/common/etc/apache2/conf.d/local-serverinfo" ],
92                         require => Package["apache2"],
93                         notify  => Exec["reload-apache2"];
94                 "/etc/apache2/conf.d/server-status":
95                         source  => [ "puppet:///apache2/per-host/$fqdn/etc/apache2/conf.d/server-status",
96                                      "puppet:///apache2/common/etc/apache2/conf.d/server-status" ],
97                         require => Package["apache2"],
98                         notify  => Exec["reload-apache2"];
99
100                 "/etc/apache2/sites-available/default-debian.org":
101                         content => template("apache2/default-debian.org.erb"),
102                         require => Package["apache2"],
103                         notify  => Exec["reload-apache2"];
104
105                 "/etc/logrotate.d/apache2":
106                         source  => [ "puppet:///apache2/per-host/$fqdn/etc/logrotate.d/apache2",
107                                      "puppet:///apache2/common/etc/logrotate.d/apache2" ];
108
109                 "/srv/www":
110                         mode    => 755,
111                         ensure  => directory;
112                 "/srv/www/default.debian.org":
113                         mode    => 755,
114                         ensure  => directory;
115                 "/srv/www/default.debian.org/htdocs":
116                         mode    => 755,
117                         ensure  => directory;
118                 "/srv/www/default.debian.org/htdocs/index.html":
119                         content => template("apache2/default-index.html");
120
121                 # sometimes this is a symlink
122                 #"/var/log/apache2":
123                 #       mode    => 755,
124                 #       ensure  => directory;
125         }
126
127         exec { "reload-apache2":
128                command => "/etc/init.d/apache2 reload",
129                refreshonly => true,
130         }
131
132         exec { "force-reload-apache2":
133                command => "/etc/init.d/apache2 force-reload",
134                refreshonly => true,
135         }
136 }