本脚本适用于在Ubuntu 20.04 (Focal Fossa) 上在线快速安装RabbitMQ和Erlang。
快速安装脚本:
bash
#!/bin/sh
sudo apt-get install curl gnupg apt-transport-https -y
## Team RabbitMQ's main signing key
curl -1sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg > /dev/null
## Community mirror of Cloudsmith: modern Erlang repository
curl -1sLf https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg > /dev/null
## Community mirror of Cloudsmith: RabbitMQ repository
curl -1sLf https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/rabbitmq.9F4587F226208342.gpg > /dev/null
## Add apt repositories maintained by Team RabbitMQ
sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF
## Provides modern Erlang/OTP releases
##
deb [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu focal main
deb-src [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu focal main
# another mirror for redundancy
deb [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu focal main
deb-src [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu focal main
## Provides RabbitMQ
##
deb [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu focal main
deb-src [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu focal main
# another mirror for redundancy
deb [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu focal main
deb-src [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu focal main
EOF
## Update package indices
sudo apt-get update -y
## Install Erlang packages
sudo apt-get install -y erlang-base \
erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets \
erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key \
erlang-runtime-tools erlang-snmp erlang-ssl \
erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl
## Install rabbitmq-server and its dependencies
sudo apt-get install rabbitmq-server -y --fix-missing
赋予可执行权限
chmod +x a.sh
执行
./a.sh
就可以了
安装RabbitMQ和Erlang后,您可以执行一些基本的操作来确保RabbitMQ正常运行,并开始使用它。以下是一些后续步骤:
-
检查RabbitMQ服务状态 :
确认RabbitMQ服务正在运行。在终端中运行以下命令:
bashsudo systemctl status rabbitmq-server
这个命令会显示RabbitMQ服务的状态。
-
启用RabbitMQ管理插件 (如果需要):
RabbitMQ附带一个管理插件,它提供了一个基于Web的用户界面,用于管理和监视您的RabbitMQ服务器。要启用它,请运行:
bashsudo rabbitmq-plugins enable rabbitmq_management
然后,您可以在浏览器中访问
http://your_server_ip:15672
来访问管理界面。 -
创建用户和设置权限 (如果需要):
默认情况下,RabbitMQ创建了一个用户名为
guest
的用户,密码也是guest
,但这个用户只能在本地访问。您可能想要创建一个新的用户:bashsudo rabbitmqctl add_user myuser mypassword sudo rabbitmqctl set_user_tags myuser administrator sudo rabbitmqctl set_permissions -p / myuser ".*" ".*" ".*"
这些命令创建了一个新用户,并给予管理员权限和对所有资源的访问权限。
-
测试RabbitMQ :
一旦一切设置就绪,您可以开始测试RabbitMQ。这可能涉及到使用RabbitMQ客户端库在您的应用程序中发送和接收消息。
-
阅读RabbitMQ文档 :
要充分利用RabbitMQ,建议您阅读官方文档,了解其架构、概念和最佳实践。RabbitMQ文档可以在官方网站找到。
-
定期维护和监控 :
保持对RabbitMQ实例的定期监控和维护,确保其稳定运行。可以使用RabbitMQ管理界面来监控队列、连接和其他重要指标。
如果您在使用RabbitMQ的过程中遇到任何问题或者有任何疑问,随时可以寻求帮助。RabbitMQ社区也非常活跃,是一个寻求帮助和最佳实践的好地方。
您的配置步骤看起来是正确的。这里是您执行的操作的简要概述:
-
添加用户 :
您创建了一个名为
aaa
的新用户,密码为xxxx
:bashsudo rabbitmqctl add_user aaa xxxx
-
设置用户角色 :
您为
aaa
用户分配了administrator
角色,这将允许该用户访问RabbitMQ的管理控制台并执行管理任务:bashsudo rabbitmqctl set_user_tags aaa administrator
-
设置权限 :
您为
aaa
用户设置了对所有资源的全权限,这意味着该用户可以在RabbitMQ服务器上创建、读取、写入和删除任何队列、交换机等:bashsudo rabbitmqctl set_permissions -p / aaa ".*" ".*" ".*"
现在,您的用户 aaa
应该能够完全访问和管理RabbitMQ服务器。您可以通过访问RabbitMQ的管理界面(通常位于 http://your_server_ip:15672
)并使用 aaa
用户名和您设置的密码登录来验证这一点。
如果您在执行这些步骤或以后使用RabbitMQ时遇到任何问题,请随时向我寻求帮助。
如果您想将RabbitMQ的数据目录更改为 /app/rabbit/mnesia
,以下是相应的步骤。请确保遵循这些步骤以避免数据丢失和服务中断:
更改RabbitMQ数据目录
-
创建新目录并设置权限 :
首先,创建新的数据目录
/app/rabbit/mnesia
并设置正确的权限:bashsudo mkdir -p /app/rabbit/mnesia sudo chown -R rabbitmq:rabbitmq /app/rabbit
-
更新RabbitMQ环境配置文件 :
修改
/etc/rabbitmq/rabbitmq-env.conf
文件,指定新的Mnesia(RabbitMQ数据库)目录。如果这个文件不存在,您可能需要创建它:bashecho 'MNESIA_BASE=/app/rabbit/mnesia' | sudo tee -a /etc/rabbitmq/rabbitmq-env.conf
-
拷贝数据到新目录 :
在停止RabbitMQ服务之前,先将现有的数据拷贝到新目录中:
bashsudo cp -a /var/lib/rabbitmq/mnesia/* /app/rabbit/mnesia
-
停止并重启RabbitMQ服务 :
停止RabbitMQ服务,然后重新启动以应用新的配置:
bashsudo systemctl stop rabbitmq-server sudo systemctl start rabbitmq-server
-
验证服务状态 :
检查RabbitMQ服务的状态,以确保服务已正确启动并使用了新的数据目录:
bashsudo systemctl status rabbitmq-server
注意事项
- 数据备份 :在进行任何更改之前,务必备份
/var/lib/rabbitmq/mnesia/
目录中的所有数据。 - 服务可用性:如果您的环境中部署了RabbitMQ集群,请考虑集群的高可用性。在高可用集群中,您应该逐个节点进行更改,以免影响整个服务。
- 测试环境验证:在生产环境中应用更改之前,建议您在测试环境中进行验证,以避免潜在的服务中断。
按照这些步骤,您应该能够安全地更改RabbitMQ的数据目录到 /app/rabbit/mnesia
。如果在执行这些操作时遇到任何问题,或者需要其他帮助,请随时联系我。