Note that exim contains tracker-specific configuration
[mirror/dsa-puppet.git] / modules / roles / manifests / sso.pp
1 # Debian SSO class.
2 #
3 # This sets up the web service as well as the LDAP backend for ftmg
4 #
5 # @param db_address     hostname of the postgres server for this service
6 # @param db_port        port of the postgres server for this service
7 class roles::sso (
8   String  $db_address,
9   Integer $db_port,
10 ) {
11   include apache2
12   include roles::sso_rp
13
14   ssl::service { 'sso.debian.org':
15     notify => Exec['service apache2 reload'],
16     key    => true,
17   }
18   ssl::service { 'ftmg.sso.debian.org':
19     notify => Exec['service apache2 reload'],
20     key    => true,
21   }
22
23   $ftmg_dsa_root_password = hkdf('/etc/puppet/secret', "roles::sso::slapd-ftmg::${::fqdn}")
24
25   ensure_packages ( [
26     'slapd',
27     ], {
28     ensure => 'installed',
29   })
30   service { 'slapd':
31     ensure  => running,
32   }
33   file { '/etc/ldap/slapd.d':
34     ensure => absent,
35     force  => true,
36     notify => Service['slapd'],
37   }
38   file { '/etc/ldap/slapd.conf':
39     source => 'puppet:///modules/roles/sso/slapd.conf',
40     notify => Service['slapd'],
41   }
42   file { '/etc/ldap/slapd-ftmg.conf':
43     content => template('roles/sso/slapd-ftmg.conf.erb'),
44     notify  => Service['slapd'],
45     group   => 'openldap',
46     mode    => '0440',
47   }
48   file { '/etc/default/slapd':
49     source => 'puppet:///modules/roles/sso/default-slapd',
50     notify => Service['slapd'],
51   }
52   file { '/var/lib/ldap-ftmg':
53     ensure => directory,
54     mode   => '0700',
55     owner  => 'openldap',
56     group  => 'openldap',
57     notify => Service['slapd'],
58   }
59
60   file { '/etc/ldap/schema/openssh-ldap.schema':
61     source => 'puppet:///modules/roles/sso/openssh-ldap.schema',
62     notify => Service['slapd'],
63   }
64
65   @@postgres::cluster::hba_entry { "debsso-${::fqdn}":
66     tag      => "postgres::cluster::${db_port}::hba::${db_address}",
67     pg_port  => $db_port,
68     database => 'debsso',
69     user     => ['debsso', 'debssoweb'],
70     address  => $base::public_addresses,
71   }
72 }