rabbitmq deployment failure on mixed OS environment
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack-Ansible |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
When deploying in an environment where an infra host may be ubuntu, suse, or centos the deployment of rabbitmq will fail due to the versions of rabbitmq being to different between the nodes.
```
TASK [rabbitmq_server : Join rabbitmq cluster] *******
FAILED - RETRYING: Join rabbitmq cluster (5 retries left).
FAILED - RETRYING: Join rabbitmq cluster (4 retries left).
FAILED - RETRYING: Join rabbitmq cluster (3 retries left).
FAILED - RETRYING: Join rabbitmq cluster (2 retries left).
FAILED - RETRYING: Join rabbitmq cluster (1 retries left).
fatal: [infra-centos]: FAILED! => {"attempts": 5, "changed": true, "cmd": ["rabbitmqctl", "join_cluster", "rabbit@
```
It would seem that the capability to file install rabbitmq has been removed on centos and suse which makes it impossible to upgrade an environment with mixed operating systems. To correct the issue, rabbitmq needs to ONLY ever be installed on a single OS type or the deployer has to downgrade rabbitmq on the ubuntu host to meet that of the other distros.
We're defaulting to external_repo installation for a while, which works as long as repo contains requested package versions.
So this is not always reliable, since repos for rabbitmq tend to drop older packages from time to time.
We try to maintain minor upgrades once this happens, but it's not always possible.
General solution in case external_repo is missing would be either to find existing version and define with rabbitmq_ package_ version / rabbitmq_ erlang_ version_ spec or use rabbitmq_ install_ method: distro.