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