From 0c6594c25864d0c90cd0009726cee84967fe65dc Mon Sep 17 00:00:00 2001 From: Sam Yaple Date: Fri, 24 Jul 2015 16:18:08 +0000 Subject: [PATCH] Tells rabbitmq to listen on single ip This binds rabbitmq, epmd, and the management plugin to a single ip. The syntax is very tricky, but this is all functional. Change-Id: Iecbb00f6c4fe3044688ae3258da31b9aabbd1501 Closes-Bug: #1478073 --- .../templates/rabbitmq-env.conf.j2 | 1 + .../templates/rabbitmq.config.j2 | 21 ++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/ansible/roles/message-broker/templates/rabbitmq-env.conf.j2 b/ansible/roles/message-broker/templates/rabbitmq-env.conf.j2 index 8921f227e4..555f94dc1f 100644 --- a/ansible/roles/message-broker/templates/rabbitmq-env.conf.j2 +++ b/ansible/roles/message-broker/templates/rabbitmq-env.conf.j2 @@ -1 +1,2 @@ RABBITMQ_NODENAME=rabbit +export ERL_EPMD_ADDRESS={{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }} diff --git a/ansible/roles/message-broker/templates/rabbitmq.config.j2 b/ansible/roles/message-broker/templates/rabbitmq.config.j2 index e51d0c56dd..47ba09e858 100644 --- a/ansible/roles/message-broker/templates/rabbitmq.config.j2 +++ b/ansible/roles/message-broker/templates/rabbitmq.config.j2 @@ -1,9 +1,24 @@ [ + {kernel, [ + {inet_dist_use_interface, {% raw %}{{% endraw %}{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] | regex_replace('\.', ',') }}}} + ]}, {rabbit, [ - {cluster_nodes, [{% for host in groups['database'] %}'rabbit@{{ hostvars[host]['ansible_hostname'] }}'{% if not loop.last %},{% endif %}{% endfor %}]}, + {tcp_listeners, [ + {"{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}", 5672} + ]}, {default_user, <<"{{ rabbitmq_user }}">>}, - {default_pass, <<"{{ rabbitmq_password }}">>} + {default_pass, <<"{{ rabbitmq_password }}">>}, + {cluster_partition_handling, autoheal}, + {cluster_nodes, [ + {% for host in groups['database'] %}'rabbit@{{ hostvars[host]['ansible_hostname'] }}'{% if not loop.last %},{% endif %}{% endfor %} + + ]} + ]}, + {rabbitmq_management, [ + {listener, [ + {ip, "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"}, + {port, 15672} + ]} ]} ]. % EOF -