diff --git a/ansible/roles/rabbitmq/defaults/main.yml b/ansible/roles/rabbitmq/defaults/main.yml
index 867e6cd050011b7935ca9afd25ad5c9d983cde46..388369f58bdae536cc4916032ebac9d77f798ae4 100644
--- a/ansible/roles/rabbitmq/defaults/main.yml
+++ b/ansible/roles/rabbitmq/defaults/main.yml
@@ -84,6 +84,7 @@ rabbitmq_server_additional_erl_args: "+S 2:2 +sbwt none +sbwtdcpu none +sbwtdio
 rabbitmq_tls_options: {}
 # To avoid split-brain
 rabbitmq_cluster_partition_handling: "pause_minority"
+rabbitmq_extra_config: {}
 
 ####################
 # Plugins
diff --git a/ansible/roles/rabbitmq/templates/rabbitmq.conf.j2 b/ansible/roles/rabbitmq/templates/rabbitmq.conf.j2
index eef0db90835837f2c3d9e6c1ca7b8213676b61b5..e61031334f33a433fcb829c86eabbcf40d6c62e7 100644
--- a/ansible/roles/rabbitmq/templates/rabbitmq.conf.j2
+++ b/ansible/roles/rabbitmq/templates/rabbitmq.conf.j2
@@ -11,6 +11,9 @@ cluster_partition_handling = {{ rabbitmq_cluster_partition_handling }}
 management.listener.ip = {{ api_interface_address }}
 management.listener.port = {{ role_rabbitmq_management_port }}
 management.load_definitions = /etc/rabbitmq/definitions.json
+{% for key, value in rabbitmq_extra_config.items() %}
+{{ key }} = {{ value }}
+{% endfor %}
 
 cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config
 {% for host in groups[role_rabbitmq_groups] %}
diff --git a/releasenotes/notes/rabbitmq-configuration-6b100a390734dc29.yaml b/releasenotes/notes/rabbitmq-configuration-6b100a390734dc29.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..86728bd7116809c486a04338512f810a0848f7e2
--- /dev/null
+++ b/releasenotes/notes/rabbitmq-configuration-6b100a390734dc29.yaml
@@ -0,0 +1,5 @@
+---
+features:
+  - |
+    Adds the ability to configure rabbitmq via ``rabbitmq_extra_config``
+    which can be overriden in globals.yml.