For å opprette et rabbitmq-cluster må man være på profile v1.4.0 eller høyere.
Migrering fra standalone rabbit med keepalived til rabbit-cluster
I migreringsprosessen er det lurt å beholde keepalived VIPen på én node selv om clusteret er opprettet og funksjonelt.
- Stopp puppet på alle rabbit-nodene
- Sett hiera-keyen
profile::rabbitmq::keepalived::enable
til true i hiera-filen til noden som skal beholde VIPen - Populér listen profile::rabbitmq:servers med kortnavnet til den første rabbit-noden i clusteret, (gjerne den som skal beholde VIPen) og kjør puppet på denne
- Legg til én og én node i lista og kjør puppet på dem
Legge til en node i eksisterende cluster
Legg til noden i profile::rabbitmq::servers,
kjør puppet på den nye noden (med role::rabbitmq). Når rabbitmq er installert, og servicen startet, kjør:
Code Block |
---|
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@<EKSISTERENDE HOST>
rabbitmqctl start_app |
OBS: Alle nodene må ha eksakt samme rabbitmq-versjon!
Tjenester som må konfigureres for HA queues
Sensu og openstack-tjenestene må konfigureres for HA queues. Dette kommer snart.
Triks i ludo
Restart hele clusteret
Om man skal restarte hele rabbitmq-clusteret, pass på at den første noden som skrus på igjen, må være den siste som ble skrudd av.
Om alle nodene går ned ukontrollert, og samtidig - velg én som skal starte opp først, og gjør:
Code Block |
---|
rabbitmqctl force_boot
rabbitmqctl start_app |
Legge tilbake en reinstallert node
Hvis du reinstallerer en rabitmq-boks og beholder hostname, så vil det bli slitsomt å få lagt den til igjen i clusteret. Derfor må du fjerne den først. Kjør kommandoen på en frisk node i clusteret
Code Block |
---|
rabbitmqctl forget_cluster_node rabbit@<reinstallert-node> |
Fjerne en node fra clusteret (f.eks hvis det har delt seg)
Code Block |
---|
kaninN# rabbitmqctl stop_app
kaninN# rabbitmqctl reset
## På dette tidspunktet er det lurt å sjekke rabbitmqctl cluster_status på en annen node, for å verifisere at clusteret ikke lenger er flere partitions
# Legg den til igjen
kaninN# rabbitmqctl start_app
kaninN# rabbitmqctl cluster_status # sjekk at alle er med, og det ikke er noen partitions
|
TBA
...