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:
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:
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
rabbitmqctl forget_cluster_node rabbit@<reinstallert-node>
Fjerne en node fra clusteret (f.eks hvis det har delt seg)
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