diff --git a/ansible/roles/rabbitmq/tasks/bootstrap.yml b/ansible/roles/rabbitmq/tasks/bootstrap.yml
index 4f262e0d0e..c008d8b6c7 100644
--- a/ansible/roles/rabbitmq/tasks/bootstrap.yml
+++ b/ansible/roles/rabbitmq/tasks/bootstrap.yml
@@ -37,7 +37,7 @@
     insecure_registry: "{{ docker_insecure_registry }}"
     name: rabbitmq_bootstrap
     image: "{{ rabbitmq_image_full }}"
-    volumes: "{{ node_config_directory }}/rabbitmq/:/opt/kolla/rabbitmq/:ro"
+    volumes: "{{ node_config_directory }}/rabbitmq/:/opt/kolla/config_files/:ro"
     volumes_from:
       - "rabbitmq_data"
     env:
diff --git a/ansible/roles/rabbitmq/tasks/config.yml b/ansible/roles/rabbitmq/tasks/config.yml
index 21a5f90ca2..740b3a230e 100644
--- a/ansible/roles/rabbitmq/tasks/config.yml
+++ b/ansible/roles/rabbitmq/tasks/config.yml
@@ -14,3 +14,8 @@
          dest: "{{ node_config_directory }}/rabbitmq/rabbitmq-env.conf" }
      - { src: "rabbitmq.config.j2",
          dest: "{{ node_config_directory }}/rabbitmq/rabbitmq.config" }
+
+- name: Copying Rabbitmq JSON configuration file
+  template:
+    src: "roles/rabbitmq/templates/rabbitmq.json.j2"
+    dest: "{{ node_config_directory }}/rabbitmq/config.json"
\ No newline at end of file
diff --git a/ansible/roles/rabbitmq/tasks/start.yml b/ansible/roles/rabbitmq/tasks/start.yml
index 72940111fd..beb93f0d40 100644
--- a/ansible/roles/rabbitmq/tasks/start.yml
+++ b/ansible/roles/rabbitmq/tasks/start.yml
@@ -13,7 +13,7 @@
     insecure_registry: "{{ docker_insecure_registry }}"
     name: rabbitmq
     image: "{{ rabbitmq_image_full }}"
-    volumes: "{{ node_config_directory }}/rabbitmq/:/opt/kolla/rabbitmq/:ro"
+    volumes: "{{ node_config_directory }}/rabbitmq/:/opt/kolla/config_files/:ro"
     volumes_from:
       - "rabbitmq_data"
     env:
diff --git a/ansible/roles/rabbitmq/templates/rabbitmq.json.j2 b/ansible/roles/rabbitmq/templates/rabbitmq.json.j2
new file mode 100644
index 0000000000..dbf55c254a
--- /dev/null
+++ b/ansible/roles/rabbitmq/templates/rabbitmq.json.j2
@@ -0,0 +1,17 @@
+{
+    "command": "/usr/sbin/rabbitmq-server",
+    "config_files": [
+        {
+            "source": "/opt/kolla/config_files/rabbitmq-env.conf",
+            "dest": "/etc/rabbitmq/rabbitmq-env.conf",
+            "owner": "rabbitmq",
+            "perm": "0600"
+        },
+        {
+            "source": "/opt/kolla/config_files/rabbitmq.config",
+            "dest": "/etc/rabbitmq/rabbitmq.config",
+            "owner": "rabbitmq",
+            "perm": "0600"
+        }
+    ]
+}
diff --git a/docker/rabbitmq/start.sh b/docker/rabbitmq/start.sh
index 749bee9633..9e7108c3d3 100755
--- a/docker/rabbitmq/start.sh
+++ b/docker/rabbitmq/start.sh
@@ -2,14 +2,12 @@
 
 set -o errexit
 
-CMD="/usr/sbin/rabbitmq-server"
-ARGS=""
-
 # loading common functions
 source /opt/kolla/kolla-common.sh
 
-# Execute config strategy
-set_configs
+# Generate run command
+python /opt/kolla/set_configs.py
+CMD=$(cat /run_command)
 
 # loading functions
 source /opt/kolla/config-rabbit.sh
@@ -20,4 +18,5 @@ if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
     exit 0
 fi
 
-$CMD $ARGS
+echo "Running command: ${CMD}"
+exec $CMD