reboot exit
3. 安装配置Rabbit_Cluster 集群
因为类同重复性工作较多,所以直接采用《shell脚本+人工操作》搭配方式进行搭建,脚本执行过程中需要在rabbit1和rabbit2交互进行。
3.1 Rabbit1主机
vim 02_rabbit1_install.sh #!/bin/bash
apt-get install -y erlang ##安装rabbitmq所依赖的工具erlang
##添加rabbitmq源
echo \/etc/apt/sources.list.d/rabbitmq.list
wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc apt-key add rabbitmq-signing-key-public.asc apt-get update
##安装rabbitmq-server服务
apt-get install -y rabbitmq-server
##方法二
echo “CHDCGETPYWOWREASJUAZ” > /var/lib/rabbitmq/.erlang.cookie
service rabbitmq-server start
# 配置rabbitmq
rabbitmq-plugins enable rabbitmq_management
##停止rabbit服务 rabbitmqctl stop
##查看rabbit状态 rabbitmqctl status
##此处交互,请在rabbit2服务器执行脚本02_rabbit2_install.sh echo \
echo \
echo \read
##因为做rabbitmq_cluster需要确保.erlang.cookie一致性,所以rabbit2和rabbit3上面的.erlang.cookie均需要从rabbit1上面scp复制过去,可以参见如下(方法一),但因为是全新的,其实完全可以写一段相同的内容更省事,参见上文中(方法二见上文),方法一我只做介绍(见下文)在这里,我注释掉,因为脚本中直接使用方法二。
##方法一
#安装expect工具,以实现自动交互上传文件。 #apt-get -y install tcl tk expect #在bash中调用expect命令
#rabbit1第一次向rabbit2机器scp文件 #/usr/bin/expect < #spawn scp /var/lib/rabbitmq/.erlang.cookie #stone@192.168.100.192:/home/stone/cookit/ #set timeout 3 #expect \#send \#expect \#send \#expect eof #EOF # rabbit1第二次或以上向rabbit2机器scp文件 #/usr/bin/expect < #spawn scp /var/lib/rabbitmq/.erlang.cookie #stone@192.168.100.192:/home/stone/cookit/ #set timeout 3 #expect \#send \#expect eof #EOF #echo \#echo \ #echo \#read ##启动rabbitma服务 rabbitmq-server -detached echo \echo \ echo \ read ##查看Rabbit_Cluster集群的状态 rabbitmqctl cluster_status echo \read exit 3.2 Rabbit2主机 vim 02_rabbit2_install.sh #!/bin/bash apt-get install -y erlang useradd -d /var/lib/rabbitmq rabbitmq echo \/etc/apt/sources.list.d/rabbitmq.list wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc apt-key add rabbitmq-signing-key-public.asc apt-get update apt-get install -y rabbitmq-server ##方法二 echo “CHDCGETPYWOWREASJUAZ” > /var/lib/rabbitmq/.erlang.cookie service rabbitmq-server start # Configure Setup rabbitmq-plugins enable rabbitmq_management rabbitmqctl stop rabbitmqctl status ##以下是对应rabbit1脚本中的方法一,因为采用的方法二,所以我注释掉它。 #rm -rf /var/lib/rabbitmq/.erlang.cookie #mkdir -p /home/stone/cookit &&chown stone.stone /home/stone/cookit #echo \#echo \ #echo \#read #mv /home/stone/cookit/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie #chown rabbitmq.rabbitmq /var/lib/rabbitmq/.erlang.cookie ##以正常模式启动rabbitmq-server服务 rabbitmq-server -detached echo \echo \ echo \read ##rabbit2加入集群rabbit ## If you need to join the cluster rabbitmqctl stop_app #If you use a hard disk (permanent), such as: #rabbitmqctl join_cluster rabbit@rabbit1 #If you use a memory, such as: ##rabit2是ram模式 rabbitmqctl join_cluster --ram rabbit@rabbit1 rabbitmqctl start_app ##如何改变rabbit的模式为ram或disc #=================================================== #We can Changing node types #rabbit2$ rabbitmqctl stop_app #rabbit2$ rabbitmqctl change_cluster_node_type disc #or #rabbit2$ rabbitmqctl change_cluster_node_type ram #rabbit2$ rabbitmqctl start_app #=================================================== ##到此,rabbit2加入集群成功 echo \echo \ echo \read ##查看Rabbit_Cluster集群的状态 rabbitmqctl cluster_status #=============================== #If you need from the cluster #rabbitmqctl stop_app #rabbitmqctl reset #rabbitmqctl start_app #=============================== echo \ read exit 3.3 Rabbit3主机 vim 03_rabbit3_install.sh #!/bin/bash apt-get install -y erlang useradd -d /var/lib/rabbitmq rabbitmq echo \/etc/apt/sources.list.d/rabbitmq.list wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc apt-key add rabbitmq-signing-key-public.asc apt-get update apt-get install -y rabbitmq-server ##方法二 echo “CHDCGETPYWOWREASJUAZ” > /var/lib/rabbitmq/.erlang.cookie service rabbitmq-server start # Configure Setup rabbitmq-plugins enable rabbitmq_management rabbitmqctl stop rabbitmqctl status ##以正常模式启动rabbitmq-server服务 rabbitmq-server -detached ##rabbit3加入集群rabbit ## If you need to join the cluster rabbitmqctl stop_app #If you use a hard disk (permanent), such as: #rabbitmqctl join_cluster rabbit@rabbit1 #If you use a memory, such as: ##rabit3是ram模式,直接加入到rabbit2,其实都是一个意思 rabbitmqctl join_cluster --ram rabbit@rabbit2 rabbitmqctl start_app ##如何改变rabbit的模式为ram或disc #=================================================== #We can Changing node types