X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Froles%2Fmanifests%2Fpubsub.pp;h=d165fccb596bdbda87346b55b60c32270e13cb29;hb=c744e409e7024a4c41238cc93d7f18e29ab667f6;hp=9cc7bb7d9e5b32e0741ca6911d190b5f8a97a6c4;hpb=e91eacfe5368e6ffe504140902e1d3fb5783d059;p=mirror%2Fdsa-puppet.git diff --git a/modules/roles/manifests/pubsub.pp b/modules/roles/manifests/pubsub.pp index 9cc7bb7d9..d165fccb5 100644 --- a/modules/roles/manifests/pubsub.pp +++ b/modules/roles/manifests/pubsub.pp @@ -1,227 +1,56 @@ class roles::pubsub { include roles::pubsub::params + include roles::pubsub::entities $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::buildd_password - $wbadm_password = $roles::pubsub::params::wbadm_password $cc_master = rainier $cc_secondary = rapoport class { 'rabbitmq': - cluster => true, - clustermembers => [ - "rabbit@${cc_master}", - "rabbit@${cc_secondary}", + config_cluster => true, + cluster_nodes => [ + $cc_master, + $cc_secondary, ], - clustercookie => '8r17so6o1s124ns49sr08n0o24342160', + cluster_node_type => 'disc', + erlang_cookie => '8r17so6o1s124ns49sr08n0o24342160', delete_guest_user => true, - master => $cc_master, + 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' } - 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' - } - - rabbitmq_user { 'admin': - admin => true, - password => $admin_password, - provider => 'rabbitmqctl', - } - - rabbitmq_user { 'ftpteam': - admin => true, - password => $ftp_password, - provider => 'rabbitmqctl', - } - - rabbitmq_user { 'buildd': - admin => true, - password => $buildd_password, - provider => 'rabbitmqctl', - } - - rabbitmq_user { 'wbadm': - admin => true, - password => $wbadm_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 { 'wbadm@packages': - read_permission => 'unchecked', - write_permission => 'wbadm', - provider => 'rabbitmqctl', - require => [ - Rabbitmq_user['wbadm'], - Rabbitmq_vhost['packages'] - ] - } - - rabbitmq_user_permissions { 'buildd@buildd': - configure_permission => '.*', - read_permission => '.*', - write_permission => '.*', - provider => 'rabbitmqctl', - require => [ - Rabbitmq_user['buildd'], - Rabbitmq_vhost['buildd'] - ] - } - - rabbitmq_user_permissions { 'wbadm@buildd': - configure_permission => '.*', - read_permission => '.*', - write_permission => '.*', - provider => 'rabbitmqctl', - require => [ - Rabbitmq_user['wbadm'], - 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': + 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)' + domain => '(ip ip6)', + rule => '&SERVICE_RANGE(tcp, 5671, $HOST_DEBIAN)' } if $::hostname == $cc_master { - $you = $cc_secondary + $you = '82.195.75.95' + $you6 = '2001:41b8:202:deb::311:95' } else { - $you = $cc_master + $you = '82.195.75.94' + $you6 = '2001:41b8:202:deb::311:94' } - @ferm::rule { 'rabbitmq_cluster': - domain => '(ip ip6)', + ferm::rule { 'rabbitmq_cluster': + domain => 'ip', 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)', + ferm::rule { 'rabbitmq_cluster_v6': + domain => 'ip6', description => 'rabbitmq cluster connections', - rule => '&SERVICE_RANGE(tcp, 15672, $DSA_V6_IPS)' + rule => "proto tcp mod state state (NEW) saddr (${you6}) ACCEPT" } }