Add command to force reset the state of RabbitMQ
This command can be invoked with ``kolla-ansible rabbitmq-reset-state``. This is primarily designed to be used when enabling HA queues[1]. As such, this also updates the RabbitMQ documentation to use this command. [1] https://docs.openstack.org/kolla-ansible/latest/reference/message-queues/rabbitmq.html#high-availability Change-Id: I6ad95a3618fc1a34af56657ef99ef14dc979f17a
This commit is contained in:
parent
d1a52b5816
commit
60282285bd
10
ansible/rabbitmq-reset-state.yml
Normal file
10
ansible/rabbitmq-reset-state.yml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
- name: Reset RabbitMQ state
|
||||
hosts: rabbitmq
|
||||
tasks:
|
||||
- name: Include RabbitMQ reset-state tasks
|
||||
include_role:
|
||||
name: rabbitmq
|
||||
tasks_from: reset-state
|
||||
when:
|
||||
- enable_rabbitmq | bool
|
16
ansible/roles/rabbitmq/tasks/reset-state.yml
Normal file
16
ansible/roles/rabbitmq/tasks/reset-state.yml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
- name: Stop the RabbitMQ application
|
||||
become: true
|
||||
command: "{{ kolla_container_engine }} exec rabbitmq rabbitmqctl stop_app"
|
||||
|
||||
- name: Reset the state of RabbitMQ
|
||||
become: true
|
||||
command: "{{ kolla_container_engine }} exec rabbitmq rabbitmqctl force_reset"
|
||||
|
||||
- name: Start the RabbitMQ application
|
||||
become: true
|
||||
command: "{{ kolla_container_engine }} exec rabbitmq rabbitmqctl start_app"
|
||||
|
||||
- name: Wait for all RabbitMQ nodes to join the cluster
|
||||
become: true
|
||||
command: "{{ kolla_container_engine }} exec rabbitmq rabbitmqctl await_online_nodes {{ groups['rabbitmq'] | length }}"
|
@ -125,22 +125,32 @@ needed to migrate from transient to durable queues.
|
||||
1. Stop all OpenStack services which use RabbitMQ, so that they will not
|
||||
attempt to recreate any queues yet.
|
||||
|
||||
2. Reconfigure RabbitMQ to enable classic queue mirroring.
|
||||
.. code-block:: console
|
||||
|
||||
kolla-ansible stop --tags <service-tags>
|
||||
|
||||
2. Generate the new config for all services.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
kolla-ansible reconfigure --tags rabbitmq --skip-tags rabbitmq-ha-precheck
|
||||
kolla-ansible genconfig
|
||||
|
||||
3. Reset the state on each RabbitMQ node with the following commands. Each
|
||||
command must be run on all RabbitMQ nodes before moving on to the next
|
||||
command. This will remove all queues.
|
||||
3. Reconfigure RabbitMQ.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
rabbitmqctl stop_app
|
||||
rabbitmqctl force_reset
|
||||
rabbitmqctl start_app
|
||||
kolla-ansible reconfigure --tags rabbitmq
|
||||
|
||||
4. Reconfigure the OpenStack services using ``kolla-ansible reconfigure``, at
|
||||
which point they will start again and recreate the appropriate queues as
|
||||
durable.
|
||||
4. Reset the state on each RabbitMQ, to remove the old transient queues and
|
||||
exchanges.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
kolla-ansible rabbitmq-reset-state
|
||||
|
||||
5. Start the OpenStack services again, at which point they will recreate the
|
||||
appropriate queues as durable.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
kolla-ansible deploy --tags <service-tags>
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
The new command ``kolla-ansible rabbitmq-reset-state`` has been added. It
|
||||
force-resets the state of RabbitMQ. This is primarily designed to be used
|
||||
when enabling HA queues, see docs:
|
||||
https://docs.openstack.org/kolla-ansible/latest/reference/message-queues/rabbitmq.html#high-availability
|
@ -193,6 +193,7 @@ Commands:
|
||||
gather-facts Gather Ansible facts
|
||||
post-deploy Do post deploy on deploy node
|
||||
pull Pull all images for containers (only pulls, no running container changes)
|
||||
rabbitmq-reset-state Force reset the state of RabbitMQ
|
||||
reconfigure Reconfigure OpenStack service
|
||||
stop Stop Kolla containers
|
||||
certificates Generate self-signed certificate for TLS *For Development Only*
|
||||
@ -241,6 +242,7 @@ deploy-servers
|
||||
gather-facts
|
||||
post-deploy
|
||||
pull
|
||||
rabbitmq-reset-state
|
||||
reconfigure
|
||||
stop
|
||||
certificates
|
||||
@ -567,6 +569,10 @@ EOF
|
||||
ACTION="Cleanup disabled nova_libvirt containers"
|
||||
PLAYBOOK="${BASEDIR}/ansible/nova-libvirt-cleanup.yml"
|
||||
;;
|
||||
(rabbitmq-reset-state)
|
||||
ACTION="Force reset the state of RabbitMQ"
|
||||
PLAYBOOK="${BASEDIR}/ansible/rabbitmq-reset-state.yml"
|
||||
;;
|
||||
(bash-completion)
|
||||
bash_completion
|
||||
exit 0
|
||||
|
Loading…
Reference in New Issue
Block a user