所有虚拟机都要配置
erlang 安装 :
- 下载rpm包
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
不一定要做的,我没搞
- 从erlang-solutions中更新该包,并将erlang_solutions.repo添加到/etc/yum.repos.d
1.1 rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
该包还需依赖到epel源,请确保已有该源,若没有则可通过以下方式安装:
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
4.yum repolist
# 查看安装是否成功
5. 安装
yum install erlang -y
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200110153147395.png)
由于Erlang Solutions会进行不断地更新,且RabbitMQ对Erlang的版本有一定的要求(官方版本要求对应表)。所以官方建议我们禁止Erlang版本的自动更新。方法如下:参考如何禁止某个软件包的自动升级
# 安装yum-versionlock
yum install yum-plugin-versionlock
# 禁止Erlang自动更新
yum versionlock erlang
注:默认情况下,yum似乎是不会自动更新软件的,除非安装了yum-cron这个软件或者自己写了某些自动更新脚本。如果是前者的话,我们也可以 cd /etc/yum 目录下,将yum-cron.conf中的download_updates = yes 改为 no。
RabbitMQ安装:
- 安装RabbitMQ Server
从官网下载rpm包并上传到服务器上。官方下载链接: https://www.rabbitmq.com/install-rpm.html#downloads
# 导入签名
rpm --import https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
或
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
安装
yum install rabbitmq-server-3.7.7-1.el7.noarch.rpm
使用脚本安装
- erlang安装
#创建erlang.repo库
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
安装
yum install erlang
2. RabbitMQ安装
1. #创建rabbitmq-server.repo库
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200110155712985.png)
- #安装
yum install rabbitmq-server -y
RabbitMQ使用 :
配置文件:
vim /etc/rabbitmq/rabbitmq.config
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
systemctl status rabbitmq-server.service
- 查看监听端口:
netstat -lantp | grep 5672
- node1:修改guest密码为admin(默认用户为:guest 密码为:guest)
rabbitmqctl change_password guest admin
6. node1:编辑rabbittmq变量文件
vim /etc/rabbitmq/rabbitmq-env.conf
RABBITMQ_NODE_PORT=5672
ulimit -S -n 4096
RABBITMQ_SERVER_ERL_ARGS="+K true +A30 +P 1048576 -kernel inet_default_connect_options [{nodelay,true},{raw,6,18,<<5000:64/native>>}] -kernel inet_default_listen_options [{raw,6,18,<<5000:64/native>>}]"
RABBITMQ_NODE_IP_ADDRESS=192.168.150.128
- 查看rabbitmq插件
/usr/lib/rabbitmq/bin/rabbitmq-plugins list
所有node 开启rabbitmq的web管理页面
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management mochiweb webmachine rabbitmq_web_dispatch amqp_client rabbitmq_management_agent
或者:rabbitmq-plugins enable rabbitmq_management
(这个比较方便)
在查看是否打开了管理页面
/usr/lib/rabbitmq/bin/rabbitmq-plugins list
- 重启服务
systemctl restart rabbitmq-server.service
systemctl status rabbitmq-server.service
- 登陆验证: http://192.168.150.128:15672 guest/admin
RabbitMQ集群 :
1. 所有虚拟机都安装好RabbitMQ之后启动RabbitMQ
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
systemctl status rabbitmq-server.service
检查5672端口是否开启:
netstat -lantp | grep 5672
2. node1:修改guest密码为admin(默认用户为:guest 密码为:guest)
rabbitmqctl change_password guest admin
guest用户登录失败的解决办法:
http://www.mamicode.com/info-detail-2337532.html
- node1:编辑rabbittmq变量文件
vim /etc/rabbitmq/rabbitmq-env.conf
RABBITMQ_NODE_PORT=5672
ulimit -S -n 4096
RABBITMQ_SERVER_ERL_ARGS="+K true +A30 +P 1048576 -kernel inet_default_connect_options [{nodelay,true},{raw,6,18,<<5000:64/native>>}] -kernel inet_default_listen_options [{raw,6,18,<<5000:64/native>>}]"
RABBITMQ_NODE_IP_ADDRESS=172.16.254.60
- node1:将rabbittmq变量文件拷贝到其他两节点,之后并修改相应节点的ip
scp /etc/rabbitmq/rabbitmq-env.conf con2:/etc/rabbitmq/
scp /etc/rabbitmq/rabbitmq-env.conf con3:/etc/rabbitmq/
所有node 开启rabbitmq的web管理页面 #(上面第7位)
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management mochiweb webmachine rabbitmq_web_dispatch amqp_client rabbitmq_management_agent
或者:rabbitmq-plugins enable rabbitmq_management(这个比较方便)
systemctl restart rabbitmq-server.service
systemctl status rabbitmq-server.service
- node1发送erlang.cookie到其他节点配置集群
rabbitmqctl status
scp /var/lib/rabbitmq/.erlang.cookie controller2:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie controller3:/var/lib/rabbitmq/.erlang.cookie
- node2和node3停止应用,并以ram的方式加入node1节点,之后重启应用
systemctl restart rabbitmq-server.service
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@con1
rabbitmqctl start_app
注意:对应的主机名要对应上 解析文件在/etc/hosts
- 查看有没有成功:
rabbitmqctl cluster_status
Cluster status of node rabbit@con1 ...
[{nodes,[{disc,[rabbit@con1]},{ram,[rabbit@con3,rabbit@con2]}]},
{running_nodes,[rabbit@con3,rabbit@con2,rabbit@con1]},
{cluster_name,<<"rabbit@con1">>},
{partitions,[]},
{alarms,[{rabbit@con3,[]},{rabbit@con2,[]},{rabbit@con1,[]}]}]
8. 登陆验证:http://172.16.254.60:15672/#/ guest/admin
- .OpenStack 用户:
node1:添加一个openstack的用户,并设密码为admin。并设置权限和成为管理员
node1:
rabbitmqctl add_user openstack admin
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
rabbitmqctl set_user_tags openstack administrator
往后会发的比较慢,年底了比较忙