-
Shut down all your OpenStack services. On all hosts in your OpenStack deployment, run:
openstack-service stop
-
Shut down and disable qpidd:
service qpidd stop chkconfig qpidd off
-
On your controller, install
rabbitmq
:yum install rabbitmq-server
-
Start
rabbitmq
and enable:service rabbitmq-server start chkconfig rabbitmq-server on
-
For each service, update the relevant configuration file to use
rabbitmq
instead ofqpid
. You can follow the procedures in this document. -
When you have finished configuring all the services on all your OpenStack hosts, restart your OpenStack services. On each host in your deployment, run:
openstack-service start
It is possible to run the rabbitmq
server in parallel with (and on a
different port from) qpid
. This permits you to make changes to one
service at a time without disrupting your entire environment.
-
On your controller, install the
rabbitmq-server
package:yum install rabbitmq-server
-
Edit
/etc/rabbitmq/rabbitmq-env.conf
and change:RABBITMQ_NODE_PORT=5672
To:
RABBITMQ_NODE_PORT=5672
This will configure
rabbitmq-server
to bind to port 5673 instead of the normal AMQP port, 5672. -
Start and enable
rabbitmq
:service rabbitmq-server start chkconfig rabbitmq-server on
-
For each service, modify the appropriate configuration files as per this document, and then restart the service.
Note that you will need to configure each service to use port 5673 for
rabbitmq
rather than the default port. This may also require appropriate firewall changes to permit access to port 5673 on your controller.For example, to migrate your Nova services from
qpid
torabbitmq
:-
Edit
/etc/nova/nova.conf
on both the controller and compute hosts. -
Restart Nova services on the controller and compute hosts:
controller# openstack-service restart nova
And:
compute# openstack-service restart nova
-
-
After completing the configuration changes for all of your services, stop and disable the
qpid
service on your controller:service qpidd stop chkconfig qpidd off
At this point, all of your services are now talking to rabbitmq
on
port 5673.
You can verify that you have completed the migration by using the
netstat
or ss
command to look for ESTABLISHED
connections to
port 5672. E.g:
# netstat -tan | grep 5672 | grep ESTABLISHED
After completing the above steps, there should be no output from this command. All of your services should now be using port 5673:
# netstat -tan | grep 5673 | grep ESTABLISHED
Which will generate output like:
tcp 0 0 127.0.0.1:37110 127.0.0.1:5673 ESTABLISHED
tcp 0 0 127.0.0.1:37108 127.0.0.1:5673 ESTABLISHED
tcp 0 0 192.168.122.162:54024 192.168.122.162:5673 ESTABLISHED
tcp 0 0 127.0.0.1:37100 127.0.0.1:5673 ESTABLISHED
tcp 0 0 192.168.122.162:54595 192.168.122.162:5673 ESTABLISHED
tcp 0 0 127.0.0.1:37109 127.0.0.1:5673 ESTABLISHED