class roles::pubsub {
- include roles::pubsub::params
-
- $cluster_cookie = $roles::pubsub::params::cluster_cookie
- $admin_password = $roles::pubsub::params::admin_password
- $ftp_password = $roles::pubsub::params::ftp_password
- $buildd_password = $roles::pubsub::params::ftp_password
- $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'
- }
-
- rabbitmq_user { 'admin':
- admin => true,
- password => $admin_password,
- provider => 'rabbitmqctl',
- }
-
- rabbitmq_user { 'ftpteam':
- admin => true,
- password => $ftp_password,
- provider => 'rabbitmqctl',
- }
-
- rabbitmq_vhost { 'packages':
- ensure => present,
- provider => 'rabbitmqctl',
- }
-
- rabbitmq_vhost { 'buildd':
- ensure => present,
- provider => 'rabbitmqctl',
- }
-
- rabbitmq_user_permissions { 'admin@buildd':
- configure_permission => '.*',
- read_permission => '.*',
- write_permission => '.*',
- provider => 'rabbitmqctl',
- require => [
- Rabbitmq_user['admin'],
- Rabbitmq_vhost['buildd']
- ]
- }
- rabbitmq_user_permissions { 'admin@packages':
- configure_permission => '.*',
- read_permission => '.*',
- write_permission => '.*',
- provider => 'rabbitmqctl',
- require => [
- Rabbitmq_user['admin'],
- Rabbitmq_vhost['packages']
- ]
- }
-
- rabbitmq_user_permissions { 'admin@/':
- configure_permission => '.*',
- read_permission => '.*',
- write_permission => '.*',
- provider => 'rabbitmqctl',
- require => Rabbitmq_user['admin']
- }
-
- rabbitmq_user_permissions { 'ftpteam@packages':
- configure_permission => '.*',
- read_permission => '.*',
- write_permission => '.*',
- provider => 'rabbitmqctl',
- require => [
- Rabbitmq_user['ftpteam'],
- Rabbitmq_vhost['packages']
- ]
- }
-
- rabbitmq_user_permissions { 'buildd@buildd':
- configure_permission => '.*',
- read_permission => '.*',
- write_permission => '.*',
- provider => 'rabbitmqctl',
- require => [
- Rabbitmq_user['buildd'],
- Rabbitmq_vhost['buildd']
- ]
- }
-
- rabbitmq_policy { 'mirror-buildd':
- vhost => 'buildd',
- match => '.*',
- policy => '{"ha-mode":"all"}',
- require => Rabbitmq_vhost['buildd']
- }
-
- rabbitmq_policy { 'mirror-packages':
- vhost => 'packages',
- match => '.*',
- policy => '{"ha-mode":"all"}',
- require => Rabbitmq_vhost['packages']
- }
-
- rabbitmq_plugin { 'rabbitmq_management':
- ensure => present,
- provider => 'rabbitmqplugins',
- require => Package['rabbitmq-server'],
- notify => Service['rabbitmq-server']
- }
- rabbitmq_plugin { 'rabbitmq_management_agent':
- ensure => present,
- provider => 'rabbitmqplugins',
- require => Package['rabbitmq-server'],
- notify => Service['rabbitmq-server']
- }
- rabbitmq_plugin { 'rabbitmq_tracing':
- ensure => present,
- provider => 'rabbitmqplugins',
- require => Package['rabbitmq-server'],
- notify => Service['rabbitmq-server']
- }
- rabbitmq_plugin { 'rabbitmq_management_visualiser':
- ensure => present,
- provider => 'rabbitmqplugins',
- require => Package['rabbitmq-server'],
- notify => Service['rabbitmq-server']
- }
-
- @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)'
- }
-
- if $::hostname == $cc_master {
- $you = $cc_secondary
- } else {
- $you = $cc_master
- }
-
- @ferm::rule { 'rabbitmq_cluster':
- domain => '(ip ip6)',
- description => 'rabbitmq cluster connections',
- rule => "proto tcp mod state state (NEW) saddr (${you}) 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
+
+ $cc_master = rainier
+ $cc_secondary = rapoport
+
+ class { 'rabbitmq':
+ config_cluster => true,
+ cluster_nodes => [
+ $cc_master,
+ $cc_secondary,
+ ],
+ 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)'
+ }
+
+ if $::hostname == $cc_master {
+ $other = join(getfromhash($deprecated::allnodeinfo, "${cc_secondary}.debian.org", 'ipHostNumber'), ' ')
+ } else {
+ $other = join(getfromhash($deprecated::allnodeinfo, "${cc_master}.debian.org", 'ipHostNumber'), ' ')
+ }
+
+ ferm::rule { 'rabbitmq_cluster':
+ domain => '(ip ip6)',
+ description => 'rabbitmq cluster connections',
+ rule => "proto tcp mod state state (NEW) saddr (${other}) ACCEPT"
+ }
}