Note that exim contains tracker-specific configuration
[mirror/dsa-puppet.git] / modules / roles / manifests / pubsub.pp
1 class roles::pubsub {
2   include roles::pubsub::params
3   include roles::pubsub::entities
4
5   $cluster_cookie  = $roles::pubsub::params::cluster_cookie
6
7   # Get the fact named hostname from all nodes in puppetdb with class Roles::Pubsub
8   $query = 'facts { name = "hostname" and resources { type = "Class" and title = "Roles::Pubsub" } }'
9   $cluster_nodes = sort(puppetdb_query($query).map |$value| { $value["value"] })
10
11   class { 'rabbitmq':
12     config_cluster    => true,
13     cluster_nodes     => $cluster_nodes,
14     cluster_node_type => 'disc',
15     erlang_cookie     => '8r17so6o1s124ns49sr08n0o24342160',
16     delete_guest_user => true,
17     ssl               => true,
18     ssl_cacert        => '/etc/ssl/debian/certs/ca.crt',
19     ssl_cert          => '/etc/ssl/debian/certs/thishost-server.crt',
20     ssl_key           => '/etc/ssl/private/thishost-server.key',
21     ssl_port          => 5671,
22     ssl_verify        => 'verify_none',
23     repos_ensure      => false,
24   }
25
26   user { 'rabbitmq':
27     groups => 'ssl-cert'
28   }
29
30   ferm::rule { 'rabbitmq':
31     description => 'rabbitmq connections',
32     domain      => '(ip ip6)',
33     rule        => '&SERVICE_RANGE(tcp, 5671, $HOST_DEBIAN)'
34   }
35
36   @@ferm::rule::simple { "pubsub-cluster-from-${::fqdn}":
37     tag   => 'roles::pubsub::intra-cluster',
38     saddr => $base::public_addresses,
39   }
40   Ferm::Rule::Simple <<| tag == 'roles::pubsub::intra-cluster' |>>
41 }