|
@@ -1,66 +1,17 @@
|
|
|
#!/bin/bash
|
|
|
-
|
|
|
# 当前路径
|
|
|
esc_basepath=$(cd `dirname $0`; pwd)
|
|
|
|
|
|
-
|
|
|
-echo "欢迎使用easy scheduler前端部署脚本,目前前端部署脚本仅支持Centos"
|
|
|
-echo "请在 escheduler-ui 目录下执行"
|
|
|
-
|
|
|
-# 配置前端访问端口
|
|
|
-esc_proxy="8888"
|
|
|
-
|
|
|
-# 配置代理后端接口
|
|
|
-esc_proxy_port="http://192.168.xx.xx:12345"
|
|
|
-
|
|
|
-# 本机ip
|
|
|
-esc_ipaddr='127.0.0.1'
|
|
|
-
|
|
|
-esc_ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}')
|
|
|
-
|
|
|
-
|
|
|
-#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
|
|
|
-
|
|
|
-# 区分版本
|
|
|
-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 ""
|
|
|
+menu(){
|
|
|
+ cat <<END
|
|
|
+=================================================
|
|
|
+ 1.CentOS6安装
|
|
|
+ 2.CentOS7安装
|
|
|
+ 3.Ubuntu安装
|
|
|
+ 4.退出
|
|
|
+=================================================
|
|
|
+END
|
|
|
+}
|
|
|
|
|
|
|
|
|
# 创建文件并配置nginx
|
|
@@ -72,7 +23,7 @@ eschedulerConf(){
|
|
|
E_http_upgrade='$http_upgrade'
|
|
|
echo "
|
|
|
server {
|
|
|
- listen $esc_proxy;# 访问端口
|
|
|
+ listen $1;# 访问端口
|
|
|
server_name localhost;
|
|
|
#charset koi8-r;
|
|
|
#access_log /var/log/nginx/host.access.log main;
|
|
@@ -81,7 +32,7 @@ eschedulerConf(){
|
|
|
index index.html index.html;
|
|
|
}
|
|
|
location /escheduler {
|
|
|
- proxy_pass ${esc_proxy_port}; # 接口地址
|
|
|
+ proxy_pass $2; # 接口地址
|
|
|
proxy_set_header Host $E_host;
|
|
|
proxy_set_header X-Real-IP $E_remote_addr;
|
|
|
proxy_set_header x_real_ipP $E_remote_addr;
|
|
@@ -106,15 +57,32 @@ eschedulerConf(){
|
|
|
|
|
|
}
|
|
|
|
|
|
+ubuntu(){
|
|
|
+ #更新源
|
|
|
+ apt-get update
|
|
|
+
|
|
|
+ #安装nginx
|
|
|
+ apt-get install -y nginx
|
|
|
+
|
|
|
+ # 配置nginx
|
|
|
+ eschedulerConf $1 $2
|
|
|
+
|
|
|
+ # 启动nginx
|
|
|
+ /etc/init.d/nginx start
|
|
|
+ sleep 1
|
|
|
+ if [ $? -ne 0 ];then
|
|
|
+ /etc/init.d/nginx start
|
|
|
+ fi
|
|
|
+ nginx -s reload
|
|
|
+}
|
|
|
|
|
|
centos7(){
|
|
|
- # 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 安装成功"
|
|
|
+
|
|
|
+ rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
|
|
|
+ yum install -y nginx
|
|
|
|
|
|
# 配置nginx
|
|
|
- eschedulerConf
|
|
|
+ eschedulerConf $1 $2
|
|
|
|
|
|
# 解决 0.0.0.0:8888 问题
|
|
|
yum -y install policycoreutils-python
|
|
@@ -123,11 +91,13 @@ centos7(){
|
|
|
# 开放前端访问端口
|
|
|
firewall-cmd --zone=public --add-port=$esc_proxy/tcp --permanent
|
|
|
|
|
|
- # 重启防火墙
|
|
|
- firewall-cmd --reload
|
|
|
-
|
|
|
# 启动nginx
|
|
|
systemctl start nginx
|
|
|
+ sleep 1
|
|
|
+ if [ $? -ne 0 ];then
|
|
|
+ systemctl start nginx
|
|
|
+ fi
|
|
|
+ nginx -s reload
|
|
|
|
|
|
# 调整SELinux的参数
|
|
|
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
|
|
@@ -138,37 +108,22 @@ centos7(){
|
|
|
|
|
|
|
|
|
centos6(){
|
|
|
- # 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
|
|
|
+
|
|
|
+ rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
|
|
|
|
|
|
# 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
|
|
|
+ eschedulerConf $1 $2
|
|
|
|
|
|
- # start
|
|
|
+ # 启动nginx
|
|
|
/etc/init.d/nginx start
|
|
|
+ sleep 1
|
|
|
+ if [ $? -ne 0 ];then
|
|
|
+ /etc/init.d/nginx start
|
|
|
+ fi
|
|
|
+ nginx -s reload
|
|
|
|
|
|
# 调整SELinux的参数
|
|
|
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
|
|
@@ -178,16 +133,87 @@ centos6(){
|
|
|
|
|
|
}
|
|
|
|
|
|
-# centos 6
|
|
|
-if [[ $version -eq 6 ]]; then
|
|
|
- centos6
|
|
|
-fi
|
|
|
-
|
|
|
-# centos 7
|
|
|
-if [[ $version -eq 7 ]]; then
|
|
|
- centos7
|
|
|
-fi
|
|
|
+function main(){
|
|
|
+ echo "欢迎使用easy scheduler前端部署脚本,目前前端部署脚本仅支持CentOS,Ubuntu"
|
|
|
+ echo "请在 escheduler-ui 目录下执行"
|
|
|
+
|
|
|
+ #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
|
|
|
+
|
|
|
+
|
|
|
+ # 配置前端访问端口
|
|
|
+ read -p "请输入nginx代理端口,不输入,则默认8888 :" esc_proxy_port
|
|
|
+ if [ -z "${esc_proxy_port}" ];then
|
|
|
+ esc_proxy_port="8888"
|
|
|
+ fi
|
|
|
+
|
|
|
+ read -p "请输入api server代理ip,必须输入,例如:192.168.xx.xx :" esc_api_server_ip
|
|
|
+ if [ -z "${esc_api_server_ip}" ];then
|
|
|
+ echo "api server代理ip不能为空."
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+
|
|
|
+ read -p "请输入api server代理端口,不输入,则默认12345 :" esc_api_server_port
|
|
|
+ if [ -z "${esc_api_server_port}" ];then
|
|
|
+ esc_api_server_port="12345"
|
|
|
+ fi
|
|
|
+
|
|
|
+ # api server后端地址
|
|
|
+ esc_api_server="http://$esc_api_server_ip:$esc_api_server_port"
|
|
|
+
|
|
|
+ # 本机ip地址
|
|
|
+ esc_ipaddr=$(ip a | grep inet | grep -v inet6 | grep -v 127 | sed 's/^[ \t]*//g' | cut -d ' ' -f2 | head -n 1 | awk -F '/' '{print $1}')
|
|
|
+
|
|
|
+ # 提示信息
|
|
|
+ menu
|
|
|
+
|
|
|
+ read -p "请输入安装编号(1|2|3|4):" num
|
|
|
+
|
|
|
+ case $num in
|
|
|
+ 1)
|
|
|
+ centos6 ${esc_proxy_port} ${esc_api_server}
|
|
|
+ ;;
|
|
|
+ 2)
|
|
|
+ centos7 ${esc_proxy_port} ${esc_api_server}
|
|
|
+ ;;
|
|
|
+ 3)
|
|
|
+ ubuntu ${esc_proxy_port} ${esc_api_server}
|
|
|
+ ;;
|
|
|
+ 4)
|
|
|
+ echo $"Usage :sh $0"
|
|
|
+ exit 1
|
|
|
+ ;;
|
|
|
+ *)
|
|
|
+ echo $"Usage :sh $0"
|
|
|
+ exit 1
|
|
|
+ esac
|
|
|
+ echo "请浏览器访问:http://${esc_ipaddr}:${esc_proxy_port}"
|
|
|
|
|
|
+}
|
|
|
|
|
|
-echo "请浏览器访问:http://${esc_ipaddr}:${esc_proxy}"
|
|
|
-
|
|
|
+main
|