Commit 0f2b2a2c authored by gongzijian's avatar gongzijian
Browse files

Merge remote-tracking branch 'upstream/branch-1.0.2' into branch-1.0.2

parents 086b34d6 7b163f8e
Loading
Loading
Loading
Loading
+130 −104
Original line number Diff line number Diff line
#!/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
    eschedulerConf $1 $2

    # 防火墙
    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
    # 启动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
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

# centos 7
if [[ $version -eq 7 ]]; then
    centos7
	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
+13 −10
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@
          <th width="50">
            <x-checkbox @on-change="_topCheckBoxClick" v-model="checkAll"></x-checkbox>
          </th>
          <th>
          <th width="40">
            <span>{{$t('#')}}</span>
          </th>
          <th>
@@ -33,7 +33,7 @@
        </tr>
        <tr v-for="(item, $index) in list" :key="item.id">
          <td width="50"><x-checkbox v-model="item.isCheck" @on-change="_arrDelChange"></x-checkbox></td>
          <td>
          <td width="50">
            <span>{{parseInt(pageNo === 1 ? ($index + 1) : (($index + 1) + (pageSize * (pageNo - 1))))}}</span>
          </td>
          <td>
@@ -90,7 +90,7 @@
        </tr>
      </table>
    </div>
    <x-button style="position: absolute; bottom: -52px; left: 22px;" v-if="strDelete !== ''" @click="_batchDelete">批量删除</x-button>
    <x-button size="xsmall" style="position: absolute; bottom: -48px; left: 22px;" v-if="strDelete !== ''" @click="_batchDelete">删除</x-button>
  </div>
</template>
<script>
@@ -308,21 +308,24 @@
      }
    },
    watch: {
      processList (a) {
      processList: {
        handler (a) {
          this.checkAll = false
          this.list = []
          setTimeout(() => {
          this.list = a
            this.list = _.cloneDeep(a)
          })
        },
        immediate: true,
        deep: true
      },
      pageNo () {
        this.checkAll = false
        this.strDelete = ''
      }
    },
    created () {
    },
    mounted () {
      this.list = this.processList
    },
    components: { }
  }
+5 −2
Original line number Diff line number Diff line
@@ -107,11 +107,11 @@ Gantt.prototype.drawChart = function () {
    .append('svg')
    .attr('class', 'chart')
    .attr('width', this.width + this.margin.left + this.margin.right)
    .attr('height', this.height + this.margin.top + this.margin.bottom)
    .attr('height', this.height + this.margin.top + this.margin.bottom + 150)
    .append('g')
    .attr('class', 'gantt-chart')
    .attr('width', this.width + this.margin.left + this.margin.right)
    .attr('height', this.height + this.margin.top + this.margin.bottom)
    .attr('height', this.height + this.margin.top + this.margin.bottom + 150)
    .attr('transform', 'translate(' + this.margin.left + ', ' + this.margin.top + ')')

  svg.selectAll('.chart')
@@ -132,6 +132,9 @@ Gantt.prototype.drawChart = function () {
    .attr('transform', 'translate(0, ' + (this.height - this.margin.top - this.margin.bottom) + ')')
    .transition()
    .call(this.xAxis)
    .selectAll("text")
      .attr("transform", `rotate(-${this.width / ($('.tick').length - 1) > 50 ? 0 : Math.acos(this.width / ($('.tick').length - 1) / 50) * 57 })`)
      .style("text-anchor", `${this.width / ($('.tick').length - 1) > 50 ? 'middle' : 'end'}`)

  svg.append('g')
    .attr('class', 'y axis')
+19 −16
Original line number Diff line number Diff line
@@ -6,13 +6,13 @@
          <th width="50">
            <x-checkbox @on-change="_topCheckBoxClick" v-model="checkAll"></x-checkbox>
          </th>
          <th>
          <th width="40">
            <span>{{$t('#')}}</span>
          </th>
          <th>
            <span>{{$t('Process Name')}}</span>
          </th>
          <th width="120">
          <th>
            <span>{{$t('Run Type')}}</span>
          </th>
          <th width="140">
@@ -21,10 +21,10 @@
          <th width="140">
            <span>{{$t('End Time')}}</span>
          </th>
          <th width="90">
          <th width="70">
            <span>{{$t('Duration')}}s</span>
          </th>
          <th width="72">
          <th width="70">
            <span>{{$t('Run Times')}}</span>
          </th>
          <th width="100">
@@ -36,13 +36,13 @@
          <th width="50">
            <span>{{$t('State')}}</span>
          </th>
          <th width="260">
          <th width="220">
            <span>{{$t('Operation')}}</span>
          </th>
        </tr>
        <tr v-for="(item, $index) in list" :key="item.id">
          <td width="50"><x-checkbox v-model="item.isCheck" @on-change="_arrDelChange"></x-checkbox></td>
          <td>
          <td width="50">
            <span>{{parseInt(pageNo === 1 ? ($index + 1) : (($index + 1) + (pageSize * (pageNo - 1))))}}</span>
          </td>
          <td>
@@ -54,8 +54,8 @@
            <span v-if="item.endTime">{{item.endTime | formatDate}}</span>
            <span v-if="!item.endTime">-</span>
          </td>
          <td><span>{{item.duration || '-'}}</span></td>
          <td><span>{{item.runTimes}}</span></td>
          <td width="70"><span>{{item.duration || '-'}}</span></td>
          <td width="70"><span>{{item.runTimes}}</span></td>
          <td>
            <span v-if="item.host">{{item.host}}</span>
            <span v-if="!item.host">-</span>
@@ -249,7 +249,7 @@
        </tr>
      </table>
    </div>
    <x-button style="position: absolute; bottom: -52px; left: 22px;" v-if="strDelete !== ''" @click="_batchDelete">批量删除</x-button>
    <x-button size="xsmall" style="position: absolute; bottom: -48px; left: 22px;" v-if="strDelete !== ''" @click="_batchDelete">删除</x-button>
  </div>
</template>
<script>
@@ -480,21 +480,24 @@
      }
    },
    watch: {
      processInstanceList (a) {
      processInstanceList: {
        handler (a) {
          this.checkAll = false
          this.list = []
          setTimeout(() => {
          this.list = this._listDataHandle(a)
            this.list = _.cloneDeep(this._listDataHandle(a))
          })
        },
        immediate: true,
        deep: true
      },
      pageNo () {
        this.checkAll = false
        this.strDelete = ''
      }
    },
    created () {
    },
    mounted () {
      this.list = this._listDataHandle(this.processInstanceList)
    },
    components: { }
  }