-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinstall_rabbitmq.sh
126 lines (122 loc) · 4.21 KB
/
install_rabbitmq.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/usr/bin/env bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
function check_root(){
[[ $EUID != 0 ]] && echo -e "${Error} 当前账号非ROOT(或没有ROOT权限),无法继续操作,请使用 sudo -i来获取临时ROOT权限(执行后会提示输入当前账号的密码)。" && exit 1
}
function check_env(){
if [ -e "/usr/bin/yum" ]
then
sudo yum -y install epel-release
sudo yum -y install wget pcre-devel openssl openssl-devel gcc gcc-c++ tcl make vim net-tools
yum -y install erlang
else
exit 1
fi
}
function check_port(){
CHKPO=$(netstat -ntlp |grep 4369|awk '{print $4}'|awk -F : '{print $2}')
if [[ $CHKPO == 4369 ]]
then
echo -e "4369端口被占用" && exit 1
else
echo -e "#######4369未被占用,10S后将进行安装############"
sleep 10
fi
}
###cat /var/lib/rabbitmq/.erlang.cookie
function install_rbq(){
rpm --import http://mirrors.valarx.com/rabbitmq-release-signing-key.asc
#yum -y install https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
yum -y install http://mirrors.valarx.com/rabbitmq-server-3.6.10-1.el7.noarch.rpm
echo "启动Rabbitmq-server"
systemctl enable rabbitmq-server
systemctl start rabbitmq-server
echo "启用Rabbitmq-web插件"
rabbitmq-plugins enable rabbitmq_management
}
function check_admin(){
read -p "请输入管理员账号:" acc
while [ -z "${acc}" ]
do
read -p "请输入管理员账号:" acc
done
echo
read -p "请输入管理员账号密码" accpwd
while [ -z "${accpwd}" ]
do
read -p "请输入管理员账号密码" accpwd
done
rabbitmqctl add_user ${acc} ${accpwd}
rabbitmqctl set_user_tags ${acc} administrator
rabbitmqctl set_permissions -p / ${acc} ".*" ".*" ".*"
echo "设置管理员账号${acc},密码${accpwd}完成"
sleep 5
}
function check_firewall(){
if [ -e "/etc/sysconfig/iptables" ]
then
iptables -I INPUT -p tcp --dport 5672 -j ACCEPT
iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
iptables -I INPUT -p tcp --dport 25672 -j ACCEPT
service iptables save
service iptables restart
echo "##############################iptables配置完成##############################"
elif [ -e "/etc/firewalld/zones/public.xml" ]
then
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --zone=public --add-port=25672/tcp --permanent
firewall-cmd --reload
echo "##############################firewall配置完成##############################"
elif [ -e "/etc/ufw/before.rules" ]
then
sudo ufw allow 5672/tcp
sudo ufw allow 15672/tcp
sudo ufw allow 25672/tcp
echo "##############################ufw配置完成##############################"
fi
}
function check_start(){
CHKPO=$(netstat -ntlp |grep 4369|awk '{print $4}'|awk -F : '{print $2}')
if [[ $CHKPO == 4369 ]]
then
echo -e "Rabbitmq已启动,无需重启启动" && exit 1
else
echo -e "启动Rabbitmq"
systemctl start rabbitmq-server
sleep 5
fi
}
function check_success(){
elcok=$(cat /var/lib/rabbitmq/.erlang.cookie)
echo "Rabbitmq安装完成"
echo "Rabbitmq已启动"
echo "erlang.cookie位置为/var/lib/rabbitmq/.erlang.cookie"
echo "本机的erlang.cookie为:${elcok}"
}
echo "Centos7 Rabbitmq 3.6.10 一键安装脚本"
echo "1) 安装rabbbitmq"
echo "2) 启动rabbbitmq"
echo "3) 停止rabbbitmq"
echo "4) 重启rabbbitmq"
read -p "请输入选项:" num
case $num in
1)
check_root
check_env && \
check_port && \
install_rbq && \
check_admin && \
check_firewall && \
check_success
;;
2)
check_start
;;
3)
systemctl stop rabbitmq-server
;;
*)
echo "输入错误" && exit
esac