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