X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Froles%2Fmanifests%2Fpubsub.pp;h=20554ece2b21152b5b05ea3f93b66e4332bfb035;hb=7709c4b48f7dced425db4b14613c07cf0642e0b1;hp=8ebe3e70b52585163f2eb77da3dbb63319cb7ec4;hpb=f7e0f993132d508cee94cf091f953ceefaf13c9c;p=mirror%2Fdsa-puppet.git diff --git a/modules/roles/manifests/pubsub.pp b/modules/roles/manifests/pubsub.pp index 8ebe3e70b..20554ece2 100644 --- a/modules/roles/manifests/pubsub.pp +++ b/modules/roles/manifests/pubsub.pp @@ -1,86 +1,41 @@ class roles::pubsub { - include roles::pubsub::params - include roles::pubsub::entities - - $cluster_cookie = $roles::pubsub::params::cluster_cookie - - $cc_master = rainier - $cc_secondary = rapoport - - class { 'rabbitmq': - cluster => true, - clustermembers => [ - "rabbit@${cc_master}", - "rabbit@${cc_secondary}", - ], - clustercookie => '8r17so6o1s124ns49sr08n0o24342160', - delete_guest_user => true, - master => $cc_master, - } - - user { 'rabbitmq': - groups => 'ssl-cert' - } - - concat::fragment { 'rabbit_ssl': - target => '/etc/rabbitmq/rabbitmq.config', - order => 35, - source => 'puppet:///modules/roles/pubsub/rabbitmq.config' - } - - concat::fragment { 'rabbit_mgmt_ssl': - target => '/etc/rabbitmq/rabbitmq.config', - order => 55, - source => 'puppet:///modules/roles/pubsub/rabbitmq-mgmt.config' - } - - @ferm::rule { 'rabbitmq': - description => 'rabbitmq connections', - rule => '&SERVICE_RANGE(tcp, 5671, $HOST_DEBIAN_V4)' - } - - @ferm::rule { 'rabbitmq-v6': - domain => 'ip6', - description => 'rabbitmq connections', - rule => '&SERVICE_RANGE(tcp, 5671, $HOST_DEBIAN_V6)' - } - - @ferm::rule { 'rabbitmq-adm': - description => 'rabbitmq connections', - rule => '&SERVICE_RANGE(tcp, 5671, $DSA_IPS)' - } - - @ferm::rule { 'rabbitmq-v6-adm': - domain => 'ip6', - description => 'rabbitmq connections', - rule => '&SERVICE_RANGE(tcp, 5671, $DSA_V6_IPS)' - } - - if $::hostname == $cc_master { - $you = '5.153.231.15' - $you6 = '2001:41c8:1000:21::21:15' - } else { - $you = '5.153.231.16' - $you6 = '2001:41c8:1000:21::21:16' - } - - @ferm::rule { 'rabbitmq_cluster': - domain => 'ip', - description => 'rabbitmq cluster connections', - rule => "proto tcp mod state state (NEW) saddr (${you}) ACCEPT" - } - @ferm::rule { 'rabbitmq_cluster_v6': - domain => 'ip6', - description => 'rabbitmq cluster connections', - rule => "proto tcp mod state state (NEW) saddr (${you6}) ACCEPT" - } - @ferm::rule { 'rabbitmq_mgmt': - description => 'rabbitmq cluster connections', - rule => '&SERVICE_RANGE(tcp, 15672, $DSA_IPS)' - } - @ferm::rule { 'rabbitmq_mgmt_v6': - domain => '(ip6)', - description => 'rabbitmq cluster connections', - rule => '&SERVICE_RANGE(tcp, 15672, $DSA_V6_IPS)' - } + include roles::pubsub::params + include roles::pubsub::entities + + $cluster_cookie = $roles::pubsub::params::cluster_cookie + + # Get the fact named hostname from all nodes in puppetdb with class Roles::Pubsub + $query = 'facts { name = "hostname" and resources { type = "Class" and title = "Roles::Pubsub" } }' + $cluster_nodes = sort(puppetdb_query($query).map |$value| { $value["value"] }) + + class { 'rabbitmq': + config_cluster => true, + cluster_nodes => $cluster_nodes, + cluster_node_type => 'disc', + erlang_cookie => '8r17so6o1s124ns49sr08n0o24342160', + delete_guest_user => true, + ssl => true, + ssl_cacert => '/etc/ssl/debian/certs/ca.crt', + ssl_cert => '/etc/ssl/debian/certs/thishost-server.crt', + ssl_key => '/etc/ssl/private/thishost-server.key', + ssl_port => 5671, + ssl_verify => 'verify_none', + repos_ensure => false, + } + + user { 'rabbitmq': + groups => 'ssl-cert' + } + + ferm::rule { 'rabbitmq': + description => 'rabbitmq connections', + domain => '(ip ip6)', + rule => '&SERVICE_RANGE(tcp, 5671, $HOST_DEBIAN)' + } + + @@ferm::rule::simple { "pubsub-cluster-from-${::fqdn}": + tag => 'roles::pubsub::intra-cluster', + saddr => $base::public_addresses, + } + Ferm::Rule::Simple <<| tag == 'roles::pubsub::intra-cluster' |>> }