git-harry f42c9281ce Stop all but one RabbitMQ node prior to upgrade
RabbitMQ nodes must all be stopped prior to a major/minor version
upgrade [1]. The role does this by distinguishing between the upgrader
node and the rest in separate stop and start tasks.

Upgrades can fail when more than one member of rabbitmq_all are not
members of the cluster. This is due to a bug fixed for greenfield
deployments by 5dc67955f0. The same fix
was not applied to upgrades because major/minor upgrades require all
RabbitMQ nodes to be stopped which is incompatible with serialising the
role in isolation.

This change uses a play to stop all but one of the nodes, prior to
running the rabbitmq_server role, and then serialises the running of
the role so that one node is upgraded at a time. This minimises the
downtime as much as possible while allowing the role to be applied to
one node at a time.

[1] http://www.rabbitmq.com/clustering.html#upgrading

Conflicts:
    tests/test-install-rabbitmq-server.yml

Change-Id: Icca5cb1a96f83063223b6ddbeb02eeb562b0931b
(cherry picked from commit 351dac725d)
2016-11-01 12:02:11 -04:00
2015-12-09 09:25:11 -06:00
2015-12-09 09:25:11 -06:00
2016-04-02 14:47:34 -04:00
2015-12-09 09:25:11 -06:00
2016-05-27 09:57:32 +01:00
2015-12-09 09:25:11 -06:00
2015-12-09 09:25:11 -06:00
2016-07-08 17:13:08 +01:00
2016-07-08 17:13:08 +01:00

OpenStack-Ansible RabbitMQ Server

This Ansible role deploys RabbitMQ. When multiple hosts are present in the rabbitmq_all inventory group a cluster will be created.

Default Variables

../../defaults/main.yml

Required Variables

# RabbitMQ cluster shared secret
rabbitmq_cookie_token: secrete

Example Playbook

- name: Install rabbitmq server
  hosts: rabbitmq_all
  user: root
  roles:
    - { role: "rabbitmq_server", tags: [ "rabbitmq-server" ] }
  vars:
    rabbitmq_cookie_token: secrete
Description
Role rabbitmq_server for OpenStack-Ansible
Readme 7.9 MiB
Languages
Python 69.3%
Jinja 30.2%
Shell 0.5%