admin_system/zyhs_admin_java/rabbitmq_install.sh

83 lines
2.3 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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"