#!/bin/bash #################################### # @description 添加RabbitMQ节点到集群 # 可参考 https://www.rabbitmq.com/clustering.html#creating-ram # @params $? => 代表上一个命令执行后的退出状态: 0->成功,1->失败 # @example => sh init-rabbitmq.sh # @author topsuder # @date 2022/11/16 14:24 #################################### # reset first node echo "Reset first rabbitmq node." docker exec rabbitmq-1 /bin/bash -c 'rabbitmqctl stop_app' docker exec rabbitmq-1 /bin/bash -c 'rabbitmqctl reset' docker exec rabbitmq-1 /bin/bash -c 'rabbitmqctl start_app' # build cluster echo "Starting to build rabbitmq cluster with two ram nodes." docker exec rabbitmq-2 /bin/bash -c 'rabbitmqctl stop_app' docker exec rabbitmq-2 /bin/bash -c 'rabbitmqctl reset' # 参数“--ram”表示设置为内存节点,忽略此参数默认为磁盘节点 docker exec rabbitmq-2 /bin/bash -c 'rabbitmqctl join_cluster rabbit@my-rabbit-1' # docker exec rabbitmq-2 /bin/bash -c 'rabbitmqctl join_cluster --ram rabbit@my-rabbit-1' docker exec rabbitmq-2 /bin/bash -c 'rabbitmqctl start_app' # check cluster status #echo "Check cluster status:" #docker exec rabbitmq-1 /bin/bash -c 'rabbitmqctl cluster_status' #docker exec rabbitmq-2 /bin/bash -c 'rabbitmqctl cluster_status' #echo "Starting to create user." #docker exec rabbitmq-1 /bin/bash -c 'rabbitmqctl add_user admin admin@123' #echo "Set tags for new user." #docker exec rabbitmq-1 /bin/bash -c 'rabbitmqctl set_user_tags admin administrator' #echo "Grant permissions to new user." #docker exec rabbitmq-1 /bin/bash -c "rabbitmqctl set_permissions -p '/' admin '.*' '.*' '.*'"