Browse Source

support ubuntu and centos6 deploy update

qiaozhanwei 6 years ago
parent
commit
db55e8ed71
1 changed files with 130 additions and 104 deletions
  1. 130 104
      escheduler-ui/install-escheduler-ui.sh

+ 130 - 104
escheduler-ui/install-escheduler-ui.sh

@@ -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