Prepare 2 vm
192.168.115.128
192.168.115.129
add host name on both server
sudo vi /etc/hosts
192.168.115.128 mq1
192.168.115.129 mq2
install erlang
wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | sudo apt-key add -
echo “deb https://packages.erlang-solutions.com/ubuntu bionic contrib” | sudo tee /etc/apt/sources.list.d/rabbitmq.list
sudo apt update
sudo apt install erlang
Test erlang installation on both vm
Erl
Install rabbitmq on vm
wget -O- https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc | sudo apt-key add -
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
echo “deb https://dl.bintray.com/rabbitmq/debian bionic main” | sudo tee /etc/apt/sources.list.d/rabbitmq.list
sudo apt update
sudo apt install rabbitmq-server
In case need to clean up the installation
sudo apt-get purge rabbitmq-server
sudo rm -rf /var/lib/rabbitmq/
Check service status make sure it is up
systemctl status rabbitmq-server.service
systemctl is-enabled rabbitmq-server.service
Enable management plugin
sudo rabbitmq-plugins enable rabbitmq_management
UFW setting (for local testing you can inactive ufw)
sudo ufw status
sudo ufw allow proto tcp from any to any port 5672,15672
Share mq1 and mq2 cookie
On mq2 server
sudo apt-get install openssh-server
sudo ufw allow 22
To avoid permission issue when copy from mq1 via scp
sudo chmod 777 /var/lib/rabbitmq/.erlang.cookie
On mq1 server
sudo scp /var/lib/rabbitmq/.erlang.cookie
username@mq2:/var/lib/rabbitmq/.erlang.cookie
After copied cookie fro node 1 ,on mq2 run below change back the permission
sudo chmod 600 /var/lib/rabbitmq/.erlang.cookie
On mq2 again
sudo systemctl restart rabbitmq-server
sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl join_cluster username@mq1
sudo rabbitmqctl start_app
On mq1
sudo rabbitmqctl add_user admin admin
sudo rabbitmqctl set_user_tags admin administrator
sudo rabbitmqctl set_permissions -p / admin “.*” “.*” “.*”
On mq2
sudo rabbitmqctl cluster_status
sudo rabbitmqctl list_users
Queue mirroring
sudo rabbitmqctl set_policy ha-all “.” ‘{“ha-mode”:”all”}’
Login to mq1(192.168.115.128:15672) can see nodes has been added into cluster