83 lines
2.3 KiB
Bash
83 lines
2.3 KiB
Bash
#!/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" |