admin_system/zyhs_admin_java/rabbitmq_install.sh

83 lines
2.3 KiB
Bash
Raw Normal View History

2026-03-13 08:26:58 +00:00
#!/bin/bash
# 基本信息
RABBITMQ_USER="admin"
RABBITMQ_PASS="a7c73c9a"
SSL_DIR="/apps/ssl/mq.zyihs.com"
CERT_FILE="$SSL_DIR/mq.zyihs.com.pem"
KEY_FILE="$SSL_DIR/mq.zyihs.com.key"
HOSTNAME="mq.zyihs.com"
echo "开始 RabbitMQ 安装与配置..."
# 安装依赖
yum update -y
yum install -y epel-release
yum install -y socat logrotate tar curl gcc gcc-c++ make
# 安装 Erlang
if ! command -v erl &> /dev/null; then
echo "安装 Erlang..."
yum install -y https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm
yum install -y erlang
fi
# 安装 RabbitMQ
cd /usr/local/src
RABBITMQ_RPM="rabbitmq-server-3.12.0-1.el8.noarch.rpm"
if [ ! -f "$RABBITMQ_RPM" ]; then
curl -O https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.12.0/$RABBITMQ_RPM
fi
yum install -y $RABBITMQ_RPM
# 启动 RabbitMQ 并设置开机自启
systemctl enable rabbitmq-server
systemctl start rabbitmq-server
sleep 5
# 开启管理插件
rabbitmq-plugins enable rabbitmq_management
# 创建管理员账号
rabbitmqctl add_user $RABBITMQ_USER $RABBITMQ_PASS
rabbitmqctl set_user_tags $RABBITMQ_USER administrator
rabbitmqctl set_permissions -p / $RABBITMQ_USER ".*" ".*" ".*"
# 配置 SSL
mkdir -p /etc/rabbitmq
cat > /etc/rabbitmq/rabbitmq.conf <<EOF
listeners.ssl.default = 5671
ssl_options.cacertfile = $CERT_FILE
ssl_options.certfile = $CERT_FILE
ssl_options.keyfile = $KEY_FILE
ssl_options.verify = verify_none
ssl_options.fail_if_no_peer_cert = false
management.listener.port = 15672
management.listener.ssl = false
EOF
# 检查证书文件
if [ ! -f "$CERT_FILE" ] || [ ! -f "$KEY_FILE" ]; then
echo "警告SSL 证书文件不存在,请检查 $SSL_DIR 路径下的 .pem 和 .key 文件!"
else
echo "已检测到 SSL 证书文件,配置将生效。"
fi
# 防火墙配置(可选,需确认 firewalld 是否启用)
if systemctl is-active --quiet firewalld; then
firewall-cmd --add-port=5671/tcp --permanent
firewall-cmd --add-port=15672/tcp --permanent
firewall-cmd --reload
echo "防火墙已开放端口 5671 (SSL AMQP) 和 15672 (管理后台)"
fi
# 重启 RabbitMQ
systemctl restart rabbitmq-server
sleep 5
echo "RabbitMQ 安装与配置完成。"
echo "管理后台http://$HOSTNAME:15672"
echo "AMQP SSL 端口5671"
echo "登录账号:$RABBITMQ_USER"
echo "登录密码:$RABBITMQ_PASS"