You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
194 lines
5.2 KiB
194 lines
5.2 KiB
6 years ago
|
#!/bin/bash
|
||
6 years ago
|
|
||
|
# 当前路径
|
||
|
esc_basepath=$(cd `dirname $0`; pwd)
|
||
|
|
||
|
|
||
|
echo "欢迎使用easy scheduler前端部署脚本,目前前端部署脚本仅支持Centos"
|
||
|
echo "请在 escheduler-ui 目录下执行"
|
||
6 years ago
|
|
||
|
# 配置前端访问端口
|
||
|
esc_proxy="8888"
|
||
|
|
||
|
# 配置代理后端接口
|
||
6 years ago
|
esc_proxy_port="http://192.168.xx.xx:12345"
|
||
6 years ago
|
|
||
|
# 本机ip
|
||
6 years ago
|
esc_ipaddr='127.0.0.1'
|
||
|
|
||
6 years ago
|
esc_ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}')
|
||
|
|
||
6 years ago
|
|
||
|
#To be compatible with MacOS and Linux
|
||
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||
|
# Mac OSX
|
||
|
echo "Easy Scheduler ui install not support Mac OSX operating system"
|
||
|
exit 1
|
||
|
elif [[ "$OSTYPE" == "linux-gnu" ]]; then
|
||
|
# linux
|
||
|
echo "linux"
|
||
|
elif [[ "$OSTYPE" == "cygwin" ]]; then
|
||
|
# POSIX compatibility layer and Linux environment emulation for Windows
|
||
|
echo "Easy Scheduler ui not support Windows operating system"
|
||
|
exit 1
|
||
|
elif [[ "$OSTYPE" == "msys" ]]; then
|
||
|
# Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
|
||
|
echo "Easy Scheduler ui not support Windows operating system"
|
||
|
exit 1
|
||
|
elif [[ "$OSTYPE" == "win32" ]]; then
|
||
|
echo "Easy Scheduler ui not support Windows operating system"
|
||
|
exit 1
|
||
|
elif [[ "$OSTYPE" == "freebsd"* ]]; then
|
||
|
# ...
|
||
|
echo "freebsd"
|
||
|
else
|
||
|
# Unknown.
|
||
|
echo "Operating system unknown, please tell us(submit issue) for better service"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
6 years ago
|
# 区分版本
|
||
|
version=`cat /etc/redhat-release|sed -r 's/.* ([0-9]+)\..*/\1/'`
|
||
|
|
||
|
|
||
|
echo "========================================================================配置信息======================================================================="
|
||
|
|
||
|
echo "前端访问端口:${esc_proxy}"
|
||
|
echo "后端代理接口地址:${esc_proxy_port}"
|
||
|
echo "静态文件地址:${esc_basepath}/dist"
|
||
|
echo "当前路径:${esc_basepath}"
|
||
|
echo "本机ip:${esc_ipaddr}"
|
||
|
|
||
|
echo "========================================================================配置信息======================================================================="
|
||
|
echo ""
|
||
|
|
||
|
|
||
|
# 创建文件并配置nginx
|
||
|
eschedulerConf(){
|
||
|
|
||
6 years ago
|
E_host='$host'
|
||
|
E_remote_addr='$remote_addr'
|
||
|
E_proxy_add_x_forwarded_for='$proxy_add_x_forwarded_for'
|
||
|
E_http_upgrade='$http_upgrade'
|
||
|
echo "
|
||
|
server {
|
||
|
listen $esc_proxy;# 访问端口
|
||
|
server_name localhost;
|
||
|
#charset koi8-r;
|
||
|
#access_log /var/log/nginx/host.access.log main;
|
||
|
location / {
|
||
|
root ${esc_basepath}/dist; # 静态文件目录
|
||
|
index index.html index.html;
|
||
|
}
|
||
|
location /escheduler {
|
||
|
proxy_pass ${esc_proxy_port}; # 接口地址
|
||
|
proxy_set_header Host $E_host;
|
||
|
proxy_set_header X-Real-IP $E_remote_addr;
|
||
|
proxy_set_header x_real_ipP $E_remote_addr;
|
||
|
proxy_set_header remote_addr $E_remote_addr;
|
||
|
proxy_set_header X-Forwarded-For $E_proxy_add_x_forwarded_for;
|
||
|
proxy_http_version 1.1;
|
||
|
proxy_connect_timeout 4s;
|
||
|
proxy_read_timeout 30s;
|
||
|
proxy_send_timeout 12s;
|
||
|
proxy_set_header Upgrade $E_http_upgrade;
|
||
|
proxy_set_header Connection "upgrade";
|
||
|
}
|
||
|
#error_page 404 /404.html;
|
||
|
# redirect server error pages to the static page /50x.html
|
||
|
#
|
||
|
error_page 500 502 503 504 /50x.html;
|
||
|
location = /50x.html {
|
||
|
root /usr/share/nginx/html;
|
||
|
}
|
||
|
}
|
||
|
" >> /etc/nginx/conf.d/escheduler.conf
|
||
6 years ago
|
|
||
|
}
|
||
|
|
||
|
|
||
|
centos7(){
|
||
6 years ago
|
# nginx是否安装
|
||
|
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
|
||
|
sudo yum install -y nginx
|
||
|
echo "nginx 安装成功"
|
||
6 years ago
|
|
||
6 years ago
|
# 配置nginx
|
||
|
eschedulerConf
|
||
6 years ago
|
|
||
6 years ago
|
# 解决 0.0.0.0:8888 问题
|
||
|
yum -y install policycoreutils-python
|
||
|
semanage port -a -t http_port_t -p tcp $esc_proxy
|
||
6 years ago
|
|
||
6 years ago
|
# 开放前端访问端口
|
||
|
firewall-cmd --zone=public --add-port=$esc_proxy/tcp --permanent
|
||
6 years ago
|
|
||
6 years ago
|
# 重启防火墙
|
||
|
firewall-cmd --reload
|
||
6 years ago
|
|
||
6 years ago
|
# 启动nginx
|
||
|
systemctl start nginx
|
||
6 years ago
|
|
||
6 years ago
|
# 调整SELinux的参数
|
||
|
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
|
||
|
# 临时生效
|
||
|
setenforce 0
|
||
6 years ago
|
|
||
|
}
|
||
|
|
||
|
|
||
|
centos6(){
|
||
6 years ago
|
# yum
|
||
|
E_basearch='$basearch'
|
||
|
E_releasever='$releasever'
|
||
|
echo "
|
||
|
[nginx]
|
||
|
name=nginx repo
|
||
|
baseurl=http://nginx.org/packages/centos/$E_releasever/$E_basearch/
|
||
|
gpgcheck=0
|
||
|
enabled=1
|
||
|
" >> /etc/yum.repos.d/nginx.repo
|
||
|
|
||
|
# install nginx
|
||
|
yum install nginx -y
|
||
|
|
||
|
# 配置nginx
|
||
|
eschedulerConf
|
||
|
|
||
|
# 防火墙
|
||
|
E_iptables=`lsof -i:$esc_proxy | wc -l`
|
||
|
if [ "$E_iptables" -gt "0" ];then
|
||
|
# 已开启端口防火墙重启
|
||
|
service iptables restart
|
||
|
else
|
||
|
# 未开启防火墙添加端口再重启
|
||
|
iptables -I INPUT 5 -i eth0 -p tcp --dport $esc_proxy -m state --state NEW,ESTABLISHED -j ACCEPT
|
||
|
service iptables save
|
||
|
service iptables restart
|
||
|
fi
|
||
|
|
||
|
# start
|
||
|
/etc/init.d/nginx start
|
||
|
|
||
|
# 调整SELinux的参数
|
||
|
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
|
||
|
|
||
|
# 临时生效
|
||
|
setenforce 0
|
||
6 years ago
|
|
||
|
}
|
||
|
|
||
|
# centos 6
|
||
|
if [[ $version -eq 6 ]]; then
|
||
|
centos6
|
||
|
fi
|
||
|
|
||
|
# centos 7
|
||
|
if [[ $version -eq 7 ]]; then
|
||
|
centos7
|
||
|
fi
|
||
|
|
||
|
|
||
|
echo "请浏览器访问:http://${esc_ipaddr}:${esc_proxy}"
|
||
|
|