Try to put haproxy on snapshot hosts
[mirror/dsa-puppet.git] / modules / roles / manifests / snapshot_web.pp
index 3067981..ee9ab94 100644 (file)
@@ -8,10 +8,6 @@ class roles::snapshot_web {
                ensure => 'installed',
        })
 
-       ssl::service { 'snapshot.debian.org':
-               notify  => Exec['service apache2 reload'],
-               key => true,
-       }
        apache2::site { '020-snapshot.debian.org':
                site   => 'snapshot.debian.org',
                content => template('roles/snapshot/snapshot.debian.org.conf.erb')
@@ -33,6 +29,8 @@ class roles::snapshot_web {
                }
        }
 
+       # varnish cache
+       ###############
        @ferm::rule { 'dsa-snapshot-varnish-v4':
                rule  => '&SERVICE(tcp, 6081)',
        }
@@ -51,6 +49,7 @@ class roles::snapshot_web {
                content => template('roles/snapshot/snapshot.debian.org.vcl.erb'),
        }
 
+       # the ipv6 port 80 is owned by varnish
        file { '/etc/apache2/ports.conf':
                content  => @("EOF"),
                        Listen 0.0.0.0:80
@@ -59,4 +58,17 @@ class roles::snapshot_web {
                require => Package['apache2'],
                notify  => Service['apache2'],
        }
+
+       # haproxy ssl termination
+       #########################
+       include haproxy
+       file { '/etc/haproxy/haproxy.cfg':
+               content => template('roles/snapshot/haproxy.cfg.erb'),
+               require => Package['haproxy'],
+               notify  => Service['haproxy'],
+       }
+       ssl::service { 'snapshot.debian.org':
+               notify  => Service['haproxy'],
+               key => true,
+       }
 }