#!/bin/bash # # Copyright (C) 2019 OX Software GmbH # # This file is part of OX Automation. # # OX Automation is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # OX Automation is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with OX Automation. If not, see <http://www.gnu.org/licenses/>. # # # Authors: # Benedikt Kroening <benedikt.kroening@open-xchange.com> # set -e SCRIPT_DIR="$( cd "$(dirname "$0")" ; pwd -P)" # sourcing some commonly used functions and executing basic checks source ${SCRIPT_DIR}/../../lib/common.bash checkRootPrivileges detectDistribution BALANCER_NAME=oxcluster BALANCER_HOST="https://localhost:8009" BALANCER_ROUTE=singlenode BALANCER_PRIORITY=50 ## Help text show_usage() { echo -n " $0 [OPTIONS] Available options: -n | --name <name> Balancer name -b | --balancer <host> Balancer host -p | --priority <n> Load priority of the balancer -r | --route <route> The backend route name used when setting the node up " } ### reading config from command line; overriding defaults POSITIONAL=() while [[ $# -gt 0 ]] do key="$1" case $key in -h|--help) show_usage exit 0 shift ;; --debug) echo "WARNING: Debug flag set (--debug)" set -x shift ;; -n|--name) BALANCER_NAME="$2" shift shift ;; -b|--balancer) BALANCER_HOST="$2" shift shift ;; -p|--priority) BALANCER_PRIORITY="$2" shift shift ;; -r|--route) BALANCER_ROUTE="$2" shift shift ;; # -f|--file) # FILE_NAME="$2" # shift # shift # ;; *) # unknown option echo "Unknonwn option: $1" POSITIONAL+=("$1") # save it in an array for later shift ;; esac done set -- "${POSITIONAL[@]}" # restore positional parameters FILE_NAME="${BALANCER_PRIORITY}_${BALANCER_NAME}-balancer.conf" echo "Creating balancer at $FILE_NAME with following config:" set | grep BALANCER_ echo " <Proxy balancer://${BALANCER_NAME}> Order Deny,Allow Allow from all BalancerMember ${BALANCER_HOST} timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 keepalive=On route=${BALANCER_ROUTE} ProxySet stickysession=JSESSIONID|jsessionid scolonpathdelim=On SetEnv proxy-initial-not-pooled SetEnv proxy-sendchunked </Proxy> " > "${HTTPD_CONF_PATH}/${FILE_NAME}" restartService ${HTTPD}