diff --git a/manifests/guestagent.pp b/manifests/guestagent.pp
index 342e5b50..16f9a6b3 100644
--- a/manifests/guestagent.pp
+++ b/manifests/guestagent.pp
@@ -54,6 +54,27 @@
 #   (optional) Control exchange.
 #   Defaults to 'trove'.
 #
+# [*rabbit_hosts*]
+#   (optional) List of clustered rabbit servers.
+#   Defaults to the value set in the trove class.
+#   The default can generally be left unless the
+#   guests need to talk to the rabbit cluster via
+#   different IPs.
+#
+# [*rabbit_host*]
+#   (optional) Location of rabbitmq installation.
+#   Defaults to the value set in the trove class.
+#   The default can generally be left unless the
+#   guests need to talk to the rabbit cluster via
+#   a different IP.
+#
+# [*rabbit_port*]
+#   (optional) Port for rabbitmq instance.
+#   Defaults to the value set in the trove class.
+#   The default can generally be left unless the
+#   guests need to talk to the rabbit cluster via
+#   a different port.
+#
 class trove::guestagent(
   $enabled                   = true,
   $manage_service            = true,
@@ -66,7 +87,10 @@ class trove::guestagent(
   $log_facility              = 'LOG_USER',
   $auth_url                  = 'http://localhost:5000/v2.0',
   $swift_url                 = 'http://localhost:8080/v1/AUTH_',
-  $control_exchange          = 'trove'
+  $control_exchange          = 'trove',
+  $rabbit_hosts              = $::trove::rabbit_hosts,
+  $rabbit_host               = $::trove::rabbit_host,
+  $rabbit_port               = $::trove::rabbit_port,
 ) inherits trove {
 
   include ::trove::deps
@@ -96,9 +120,9 @@ class trove::guestagent(
 
   if $::trove::rpc_backend == 'trove.openstack.common.rpc.impl_kombu' or $::trove::rpc_backend == 'rabbit' {
     oslo::messaging::rabbit {'trove_guestagent_config':
-      rabbit_hosts          => $::trove::rabbit_hosts,
-      rabbit_host           => $::trove::rabbit_host,
-      rabbit_port           => $::trove::rabbit_port,
+      rabbit_hosts          => $rabbit_hosts,
+      rabbit_host           => $rabbit_host,
+      rabbit_port           => $rabbit_port,
       rabbit_ha_queues      => $::trove::rabbit_ha_queues,
       rabbit_userid         => $::trove::rabbit_userid,
       rabbit_password       => $::trove::rabbit_password,
diff --git a/releasenotes/notes/guestagent-override-rabbit-params-eaf20f06fad960c5.yaml b/releasenotes/notes/guestagent-override-rabbit-params-eaf20f06fad960c5.yaml
new file mode 100644
index 00000000..e289736b
--- /dev/null
+++ b/releasenotes/notes/guestagent-override-rabbit-params-eaf20f06fad960c5.yaml
@@ -0,0 +1,7 @@
+---
+features:
+  - In some environments, Trove guests will talk to rabbit via a different
+    gateway or VIP and possibly using a different port. This might be done
+    for security or separation reasons. This change allows the guestagent's
+    rabbit host(s) and port information to be different than that from the
+    main cluster.
diff --git a/spec/classes/trove_guestagent_spec.rb b/spec/classes/trove_guestagent_spec.rb
index 9eb9fd93..06cf1658 100644
--- a/spec/classes/trove_guestagent_spec.rb
+++ b/spec/classes/trove_guestagent_spec.rb
@@ -32,6 +32,9 @@ describe 'trove::guestagent' do
         is_expected.to contain_trove_guestagent_config('DEFAULT/os_region_name').with_value('RegionOne')
         is_expected.to contain_trove_guestagent_config('oslo_messaging_notifications/driver').with_value('<SERVICE DEFAULT>')
         is_expected.to contain_trove_guestagent_config('oslo_messaging_notifications/topics').with_value('<SERVICE DEFAULT>')
+        is_expected.to contain_trove_guestagent_config('oslo_messaging_rabbit/rabbit_host').with_value('<SERVICE DEFAULT>')
+        is_expected.to contain_trove_guestagent_config('oslo_messaging_rabbit/rabbit_hosts').with_value('<SERVICE DEFAULT>')
+        is_expected.to contain_trove_guestagent_config('oslo_messaging_rabbit/rabbit_port').with_value('<SERVICE DEFAULT>')
         is_expected.to contain_trove_guestagent_config('oslo_messaging_rabbit/rabbit_userid').with_value('<SERVICE DEFAULT>')
         is_expected.to contain_trove_guestagent_config('oslo_messaging_rabbit/rabbit_password').with_value('<SERVICE DEFAULT>')
         is_expected.to contain_trove_guestagent_config('oslo_messaging_rabbit/rabbit_use_ssl').with_value('<SERVICE DEFAULT>')
@@ -89,11 +92,16 @@ describe 'trove::guestagent' do
 
       let :params do
         { :auth_url => "http://10.0.0.1:5000/v2.0",
-          :swift_url => "http://10.0.0.1:8080/v1/AUTH_" }
+          :swift_url => "http://10.0.0.1:8080/v1/AUTH_",
+          :rabbit_host => '10.1.0.1',
+          :rabbit_port => '5673'
+        }
       end
       it 'configures trove-guestagent with custom parameters' do
         is_expected.to contain_trove_guestagent_config('DEFAULT/trove_auth_url').with_value('http://10.0.0.1:5000/v2.0')
         is_expected.to contain_trove_guestagent_config('DEFAULT/swift_url').with_value('http://10.0.0.1:8080/v1/AUTH_')
+        is_expected.to contain_trove_guestagent_config('oslo_messaging_rabbit/rabbit_host').with_value('10.1.0.1')
+        is_expected.to contain_trove_guestagent_config('oslo_messaging_rabbit/rabbit_port').with_value('5673')
       end
     end