e78167a756e7db3500b0b55f8c00f15af249356b
[mirror/dsa-puppet.git] / modules / roles / manifests / dbmaster.pp
1 # = Class: roles::dbmaster
2 #
3 # Setup for db.debian.org master host
4 #
5 # == Sample Usage:
6 #
7 #   include roles::dbmaster
8 #
9 class roles::dbmaster {
10   include apache2
11
12   include roles::pubsub::parameters
13
14   $rabbit_password = $roles::pubsub::parameters::rabbit_password
15
16   ssl::service { 'db.debian.org':
17     notify   => [ Exec['service apache2 reload'],
18                   Service['slapd'] ],
19     key      => true,
20     tlsaport => [443, 389, 636],
21   }
22
23   file { '/etc/ldap/db.debian.org.key':
24     ensure  => present,
25     mode    => '0440',
26     group   => 'openldap',
27     content => inline_template('<%= File.read(scope().call_function("hiera", ["paths.letsencrypt_dir"]) + "/db.debian.org.key") %>'),
28     links   => follow,
29   }
30
31   roles::pubsub::config { 'generate':
32     key      => 'dsa-udgenerate',
33     exchange => dsa,
34     topic    => 'dsa.ud.replicate',
35     vhost    => dsa,
36     username => $::fqdn,
37     password => $rabbit_password
38   }
39
40   service { 'slapd':
41     ensure => running,
42   }
43
44   ssh::keygen {'dsa': }
45   ssh::authorized_key_add { 'dbmaster::puppetmaster::nagios-build':
46     target_user => 'puppet',
47     command     => '/srv/puppet.debian.org/sync/bin/puppet-ssh-wrap draghi.debian.org nagiosconfig',
48     key         => $facts['dsa_key'],
49     collect_tag => 'puppetmaster',
50   }
51
52   exim::vdomain { 'db.debian.org':
53     mail_user  => 'mail_db',
54     mail_group => 'nogroup',
55   }
56
57   ferm::rule::simple { 'finger':
58     port => 'finger',
59   }
60   ferm::rule::simple { 'ldap':
61     port => ['ldap', 'ldaps'],
62   }
63 }