From: Chris Sharp Date: Sat, 16 Oct 2021 18:20:34 +0000 (-0400) Subject: Remove unused eg_startup template file. Re-add eg_vhost. X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=162a5fa5a07be014910530c0fb21e45a24027e36;p=contrib%2Fpines%2Fgenasys.git Remove unused eg_startup template file. Re-add eg_vhost. --- diff --git a/GenaSYS.sh b/GenaSYS.sh index b1d6314..b0c7d17 100755 --- a/GenaSYS.sh +++ b/GenaSYS.sh @@ -40,18 +40,18 @@ echo ; echo >&2 "Usage: $0 [-c config file] [-h] help" ; echo } dont_waste_my_time() { - sleep() { - true - } + sleep() { + true + } } while getopts c:nhd OPTIONS -do case "$OPTIONS" in - c) CONFIG_FILE="$OPTARG";; - n) NOSPLASH="1";; - d) NOSPLASH="1";BLOW_PAST="1";dont_waste_my_time;; - h) Usage ; exit 1;; - [?]) Usage ; exit 2;; - esac +do case "$OPTIONS" in + c) CONFIG_FILE="$OPTARG";; + n) NOSPLASH="1";; + d) NOSPLASH="1";BLOW_PAST="1";dont_waste_my_time;; + h) Usage ; exit 1;; + [?]) Usage ; exit 2;; + esac done @@ -89,15 +89,15 @@ export TERM=xterm-256color if [ -e ${TMPFOLDER} ] then - rm -rf ${TMPFOLDER} || sudo rm -rf ${TMPFOLDER} - mkdir -p ${TMPFOLDER} + rm -rf ${TMPFOLDER} || sudo rm -rf ${TMPFOLDER} + mkdir -p ${TMPFOLDER} else - mkdir -p ${TMPFOLDER} + mkdir -p ${TMPFOLDER} fi if [ ! -e ${WD}/ssl_cert ] - then - mkdir ${WD}ssl_cert + then + mkdir ${WD}ssl_cert fi #TMPBRICKDRONES="/tmp/tmpbricknodes" @@ -206,11 +206,11 @@ echo #echo -e $COL_BR_BLUE"${CHAR}x${TEXT} ${CHAR}x${TEXT}" #echo -e "${CHAR}x${TEXT}$COL_RESET Georgia PINES Evergreen $EG_VERSION Cluster configuration. $COL_BR_BLUE${CHAR}x${TEXT}" #echo -e "${CHAR}x${TEXT} ${CHAR}x${TEXT}" -#echo -e $COL_BR_BLUE"${CHAR}x${TEXT}$COL_RESET Welcome to GenaSYS for Evergreen $EG_VERSION $COL_BR_BLUE${CHAR}x${TEXT}" +#echo -e $COL_BR_BLUE"${CHAR}x${TEXT}$COL_RESET Welcome to GenaSYS for Evergreen $EG_VERSION $COL_BR_BLUE${CHAR}x${TEXT}" #echo -e ${CHAR}x${TEXT}"$COL_RESET This program will ask you a few questions then generate $COL_BR_BLUE${CHAR}x${TEXT}" #echo -e ${CHAR}x${TEXT}"$COL_RESET all the system config files needed for a standard $COL_BR_BLUE${CHAR}x${TEXT}" -#echo -e ${CHAR}x${TEXT}"$COL_RESET distributed installation of Evergreen $EG_VERSION $COL_BR_BLUE${CHAR}x${TEXT}" -#echo -e ${CHAR}x${TEXT}" ${CHAR}x${TEXT}" +#echo -e ${CHAR}x${TEXT}"$COL_RESET distributed installation of Evergreen $EG_VERSION $COL_BR_BLUE${CHAR}x${TEXT}" +#echo -e ${CHAR}x${TEXT}" ${CHAR}x${TEXT}" #echo -e ${COL_BR_BLUE}${CHAR}"maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaj"${COL_RESET}${TEXT} BoxTitleBar GenaSYS echo @@ -317,18 +317,18 @@ done if [ "$TEST_CLUSTER" = "y" ] || [ "$TEST_CLUSTER" = "Y" ] then echo - echo "You selected test cluster. There are times when setting up a test environment" - echo "that it is desired to dis-allow access to / by all user-agents with a robots.txt" - echo - while true; do - echo + echo "You selected test cluster. There are times when setting up a test environment" + echo "that it is desired to dis-allow access to / by all user-agents with a robots.txt" + echo + while true; do + echo read -n 1 -p "Dis-allow access to / by all user-agents with robots.txt?. [y/n] : " ROBOTS_TXT - case $ROBOTS_TXT in - [Yy]* ) echo ; break;; - [Nn]* ) echo ; break;; - * ) echo " Please answer yes or no.";; - esac - done + case $ROBOTS_TXT in + [Yy]* ) echo ; break;; + [Nn]* ) echo ; break;; + * ) echo " Please answer yes or no.";; + esac + done fi } @@ -399,14 +399,14 @@ while true; do esac done if [ "$USE_HOSTNAME_PREFIX" = "y" ] || [ "$USE_HOSTNAME_PREFIX" = "Y" ] - then - echo - echo -e $COL_BR_CYAN - read -p "Enter the hostname prefix eg. test : " HOSTNAME_PREFIX - echo -e $COL_RESET - echo - echo -e "The hostname prefix $COL_BR_YELLOW $HOSTNAME_PREFIX $COL_RESET will be used." - echo + then + echo + echo -e $COL_BR_CYAN + read -p "Enter the hostname prefix eg. test : " HOSTNAME_PREFIX + echo -e $COL_RESET + echo + echo -e "The hostname prefix $COL_BR_YELLOW $HOSTNAME_PREFIX $COL_RESET will be used." + echo fi } @@ -456,56 +456,56 @@ done } Generate_SSL_Cert () { ### Generate SSL Certificate. - mkdir -p "${OUTDIR}/ssl_cert" - echo - echo -e $COL_BR_BLUE"Generating self-signed certificate"${COL_RESET} - sleep 1 - if ! which openssl >/dev/null - then - echo - echo "openssl command not found - please install openssl" - read -p "then press [Enter] to continue" ENTER - echo - cd "${CERT_DIR}" + mkdir -p "${OUTDIR}/ssl_cert" + echo + echo -e $COL_BR_BLUE"Generating self-signed certificate"${COL_RESET} + sleep 1 + if ! which openssl >/dev/null + then + echo + echo "openssl command not found - please install openssl" + read -p "then press [Enter] to continue" ENTER + echo + cd "${CERT_DIR}" openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key -subj "/CN=$CLUSTERDOMAINNAME" - echo;echo;echo "Certificate for $CLUSTERDOMAINNAME" - openssl x509 -in server.crt -text -noout - openssl dhparam -out dhparams.pem 2048 - sleep 2 - cd "${WD}" - else - echo - cd "${CERT_DIR}" - openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key -subj "/CN=$CLUSTERDOMAINNAME" - echo;echo;echo "Certificate for $CLUSTERDOMAINNAME" - openssl x509 -in server.crt -text -noout - openssl dhparam -out dhparams.pem 2048 - sleep 2 - cd "${WD}" - fi + echo;echo;echo "Certificate for $CLUSTERDOMAINNAME" + openssl x509 -in server.crt -text -noout + openssl dhparam -out dhparams.pem 2048 + sleep 2 + cd "${WD}" + else + echo + cd "${CERT_DIR}" + openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key -subj "/CN=$CLUSTERDOMAINNAME" + echo;echo;echo "Certificate for $CLUSTERDOMAINNAME" + openssl x509 -in server.crt -text -noout + openssl dhparam -out dhparams.pem 2048 + sleep 2 + cd "${WD}" + fi } Use_CA_Cert () { ### Configure with CA Certificate - if [ -e "${WD}/ssl_cert/server.key" ] && [ -e "${WD}/ssl_cert/server.crt" ] - then - CERT_DIR="${WD}/ssl_cert" - echo - echo -e $COL_BR_BLUE"Using certificate files found in"$COL_RESET $COL_YELLOW"${CERT_DIR}"$COL_RESET - sleep 1 - #openssl x509 -in $CERT_DIR/server.crt -text -noout - #sleep 2 - CA_FILES_EXIST="y" - else - echo - echo "The files server.crt and server.key are not found in ${WD}/ssl_cert." - echo "You must include both files." - echo "please copy the certificate files to ${WD}/ssl_cert" - echo "and run this program again." - echo "Exiting...." - exit 4 - fi - + if [ -e "${WD}/ssl_cert/server.key" ] && [ -e "${WD}/ssl_cert/server.crt" ] + then + CERT_DIR="${WD}/ssl_cert" + echo + echo -e $COL_BR_BLUE"Using certificate files found in"$COL_RESET $COL_YELLOW"${CERT_DIR}"$COL_RESET + sleep 1 + #openssl x509 -in $CERT_DIR/server.crt -text -noout + #sleep 2 + CA_FILES_EXIST="y" + else + echo + echo "The files server.crt and server.key are not found in ${WD}/ssl_cert." + echo "You must include both files." + echo "please copy the certificate files to ${WD}/ssl_cert" + echo "and run this program again." + echo "Exiting...." + exit 4 + fi + } @@ -527,23 +527,23 @@ done Get_Drone_Config () { ### Choose seperate or integrated drones while true; do - read -n 1 -p "Do you want to use separate drone servers in this configuration? [y/n]: " USEDRONES - case $USEDRONES in - [Yy]* ) echo ; break;; - [Nn]* ) echo ; break;; - * ) echo " Please answer yes or no.";; - esac + read -n 1 -p "Do you want to use separate drone servers in this configuration? [y/n]: " USEDRONES + case $USEDRONES in + [Yy]* ) echo ; break;; + [Nn]* ) echo ; break;; + * ) echo " Please answer yes or no.";; + esac done } Get_Drone_Count () { ### Get the number of drones while true; do - echo - read -n 1 -p "How many drones per brick would you like to configure? [1-9] : " DRONECOUNT - case $DRONECOUNT in - [1-9]* ) echo ; break;; - * ) echo " Please enter a number between [1-9].";; - esac + echo + read -n 1 -p "How many drones per brick would you like to configure? [1-9] : " DRONECOUNT + case $DRONECOUNT in + [1-9]* ) echo ; break;; + * ) echo " Please enter a number between [1-9].";; + esac done } @@ -561,16 +561,16 @@ Ask_Use_Manual_Brick_Addresses () { ### Prompt to use manually assigned address echo;echo TitleBar "Brick IP Addresses" while true; do - echo - echo -e "By default GenaSYS will generate the IP addresses for the bricks in this cluster." - echo "If you choose [n] here you will be prompted to enter the IP address for each brick in the cluster." - echo " **Note that seperate drone servers are not supported if you enter IPs for the bricks manually." - echo -e "Do you want GenaSYS to generate the IP addresses for the bricks?" - echo -en $COL_BR_CYAN - read -n 1 -p "[y/n] :" GENERATE_BRICKS_IPS - echo -e $COL_RESET - case $GENERATE_BRICKS_IPS in - [Yy]* ) echo ; break;; + echo + echo -e "By default GenaSYS will generate the IP addresses for the bricks in this cluster." + echo "If you choose [n] here you will be prompted to enter the IP address for each brick in the cluster." + echo " **Note that seperate drone servers are not supported if you enter IPs for the bricks manually." + echo -e "Do you want GenaSYS to generate the IP addresses for the bricks?" + echo -en $COL_BR_CYAN + read -n 1 -p "[y/n] :" GENERATE_BRICKS_IPS + echo -e $COL_RESET + case $GENERATE_BRICKS_IPS in + [Yy]* ) echo ; break;; [Nn]* ) echo ; break;; * ) echo " Please answer yes or no.";; esac @@ -582,8 +582,8 @@ Get_Brick_IP_Addresses () { ### Get IP addresses for the bricks. for BRICK in $(seq $BRICKCOUNT) do read -p "Enter the IP for brick0${BRICK}-head: " MANUAL_BRICK_IP_0${BRICK} - eval echo "Using IP address \$MANUAL_BRICK_IP_0${BRICK} for brick0${BRICK}-head." - echo + eval echo "Using IP address \$MANUAL_BRICK_IP_0${BRICK} for brick0${BRICK}-head." + echo done } @@ -620,10 +620,10 @@ done echo -e $COL_RESET echo #if [ "$USE_HOSTNAME_PREFIX" = "y" ] || [ "$USE_HOSTNAME_PREFIX" = "Y" ] -# then -# REPORTS_NFS_HOSTNAME="${HOSTNAME_PREFIX}-${CHOSEN_REPORTS_NFS_HOSTNAME}" -# else -# REPORTS_NFS_HOSTNAME="${CHOSEN_REPORTS_NFS_HOSTNAME}" +# then +# REPORTS_NFS_HOSTNAME="${HOSTNAME_PREFIX}-${CHOSEN_REPORTS_NFS_HOSTNAME}" +# else +# REPORTS_NFS_HOSTNAME="${CHOSEN_REPORTS_NFS_HOSTNAME}" #fi echo;echo -e $COL_BR_BLUE"Setting up reports output NFS share on"$COL_RESET $COL_BR_GREEN"${CHOSEN_REPORTS_NFS_HOSTNAME}.${CLUSTERDOMAINNAME}"$COL_RESET sleep 2 @@ -642,7 +642,7 @@ read -sp "Enter OpenSRF Password: " OPENSRF_PASSWORD while [ "$OPENSRF_PASSWORD" = "" ] do echo - MORON="1" + MORON="1" echo -e $COL_BR_RED"Cannot be blank - you must enter a password"$COL_RESET read -sp "Enter the opensrf password: " OPENSRF_PASSWORD done @@ -664,32 +664,32 @@ echo read -sp "Enter the database password: " DATABASE_PASSWORD while [ "$DATABASE_PASSWORD" = "" ] do - if [ "$MORON" = "1" ] - then - echo - echo "Cannot be blank you - must enter a password" - sleep 1 - echo "are you a moron?" - sleep 3 - echo - echo "Lets try this again shall we?" - sleep 3 - echo "Try not to be a moron this time" - sleep 2 - read -sp "Enter the database password: " DATABASE_PASSWORD - else - echo - MORON=1 - echo -e $COL_BR_RED"Cannot be blank you must enter a password"$COL_RESET - read -sp "Enter the database password: " DATABASE_PASSWORD - fi + if [ "$MORON" = "1" ] + then + echo + echo "Cannot be blank you - must enter a password" + sleep 1 + echo "are you a moron?" + sleep 3 + echo + echo "Lets try this again shall we?" + sleep 3 + echo "Try not to be a moron this time" + sleep 2 + read -sp "Enter the database password: " DATABASE_PASSWORD + else + echo + MORON=1 + echo -e $COL_BR_RED"Cannot be blank you must enter a password"$COL_RESET + read -sp "Enter the database password: " DATABASE_PASSWORD + fi done echo read -sp "Confirm the database password: " DATABASE_PASSWORD_CONFIRM while [ "$DATABASE_PASSWORD_CONFIRM" = "" ] do - echo -e $COL_BR_RED"Cannot be blank you must enter a password"$COL_RESET - read -sp "Confirm the database password: " DATABASE_PASSWORD_CONFIRM + echo -e $COL_BR_RED"Cannot be blank you must enter a password"$COL_RESET + read -sp "Confirm the database password: " DATABASE_PASSWORD_CONFIRM done } @@ -705,16 +705,16 @@ Get_EG_Admin_Password () { ### Prompt for Evergreen admin password. echo read -sp "Enter the Evergreen Administrator Password: " EG_ADMIN_PASSWORD while [ "$EG_ADMIN_PASSWORD" = "" ] - do - echo - echo -e $COL_BR_RED"Cannot be blank you must enter a password"$COL_RESET - read -sp "Enter the Evergreen Administrator Password: " EG_ADMIN_PASSWORD + do + echo + echo -e $COL_BR_RED"Cannot be blank you must enter a password"$COL_RESET + read -sp "Enter the Evergreen Administrator Password: " EG_ADMIN_PASSWORD done echo read -sp "Confirm the Evergreen Administrator Password: " EG_ADMIN_PASSWORD_CONFIRM while [ "$EG_ADMIN_PASSWORD_CONFIRM" == "" ] - do - echo -e $COL_BR_RED"Cannot be blank you must enter a password"$COL_RESET + do + echo -e $COL_BR_RED"Cannot be blank you must enter a password"$COL_RESET read -sp "Enter the Evergreen Administrator Password: " EG_ADMIN_PASSWORD_CONFIRM done } @@ -820,15 +820,15 @@ sleep 1 echo if [ "$USE_STANDARD_PRIVATE_NETWORK" = "y" ] || [ "$USE_STANDARD_PRIVATE_NETWORK" = "Y" ] then - PRIVATENET_GATEWAY="${PRIVATENET}.1" + PRIVATENET_GATEWAY="${PRIVATENET}.1" else - echo -e "Enter the gateway address for the" ${COL_BR_GREEN}"private network"${COL_RESET} "network" "(${COL_BR_GREEN}${PRIVATENET}${COL_RESET}): " - echo -e $COL_BR_CYAN - read -p "eg. ${PRIVATENET}.1 >> " PRIVATENET_GATEWAY - [ -z "$PRIVATENET_GATEWAY" ] && PRIVATENET_GATEWAY="${PRIVATENET}.1" - echo "Using $PRIVATENET_GATEWAY" - echo -e $COL_RESET - sleep 1 + echo -e "Enter the gateway address for the" ${COL_BR_GREEN}"private network"${COL_RESET} "network" "(${COL_BR_GREEN}${PRIVATENET}${COL_RESET}): " + echo -e $COL_BR_CYAN + read -p "eg. ${PRIVATENET}.1 >> " PRIVATENET_GATEWAY + [ -z "$PRIVATENET_GATEWAY" ] && PRIVATENET_GATEWAY="${PRIVATENET}.1" + echo "Using $PRIVATENET_GATEWAY" + echo -e $COL_RESET + sleep 1 fi } @@ -851,12 +851,12 @@ done Get_Private_Net () { ### Get Private Network Configuration. if [ "$USE_STANDARD_PRIVATE_NETWORK" != "y" ] then - echo - echo "Enter the first 3 octets of the private network ip address for the cluster : " - echo -en $COL_BR_CYAN + echo + echo "Enter the first 3 octets of the private network ip address for the cluster : " + echo -en $COL_BR_CYAN read -p "eg. 192.168.1 Private Network IP: " PRIVATENET - ORIGIN_PRIVATENET="$PRIVATENET" - echo -e $COL_RESET + ORIGIN_PRIVATENET="$PRIVATENET" + echo -e $COL_RESET echo echo -e "The network IP" $COL_BR_YELLOW "${PRIVATENET}.0/24" $COL_RESET "will be used for the private network." echo @@ -951,10 +951,10 @@ echo Get_Use_Syndetics () { ### Choose Syndetics for added content. while true; do - echo;echo;echo;echo - #echo -e $COL_BR_BLUE"____________________Added Content____________________"$COL_RESET - TitleBar "Added Content" - echo + echo;echo;echo;echo + #echo -e $COL_BR_BLUE"____________________Added Content____________________"$COL_RESET + TitleBar "Added Content" + echo read -n 1 -p "Do you want to use Syndetics for added content? [y/n]: " USE_SYNDETICS case $USE_SYNDETICS in [Yy]* ) echo ; break;; @@ -1034,9 +1034,9 @@ echo "In order to configure monitoring for the cluster," echo "(Icinga/Nagios, PhP4Nagios, and Munin) we need to" echo "configure the admin credentials and email contact." read -p "Enter a monitoring admin username. eg monitoradmin: " MONITOR_ADMIN_USERNAME - [ -z "$MONITOR_ADMIN_USERNAME" ] && MONITOR_ADMIN_USERNAME="monitoradmin" - echo - echo -e "Setting the monitor admin username to: "$COL_BR_CYAN"$MONITOR_ADMIN_USERNAME"$COL_RESET + [ -z "$MONITOR_ADMIN_USERNAME" ] && MONITOR_ADMIN_USERNAME="monitoradmin" + echo + echo -e "Setting the monitor admin username to: "$COL_BR_CYAN"$MONITOR_ADMIN_USERNAME"$COL_RESET echo } @@ -1068,8 +1068,8 @@ echo "to recieve alerts from the monitoring servers." read -p "Enter notification email address: " NOTIFY_EMAIL_ADDRESS while [ "$NOTIFY_EMAIL_ADDRESS" = "" ] do - echo -e $COL_BR_RED"Cannot be blank you must enter an email address"$COL_RESET - read -p "Enter notification email address: " NOTIFY_EMAIL_ADDRESS + echo -e $COL_BR_RED"Cannot be blank you must enter an email address"$COL_RESET + read -p "Enter notification email address: " NOTIFY_EMAIL_ADDRESS done echo echo "Using $NOTIFY_EMAIL_ADDRESS for monitoring alerts" @@ -1077,20 +1077,20 @@ echo "Using $NOTIFY_EMAIL_ADDRESS for monitoring alerts" Confirm_Input () { ### Confirm input. Correct? [y/n] while true; do - read -n 1 -p "Is this correct? [y/n] : " RETRY - case $RETRY in - [Yy]* ) echo ; break;; - [Nn]* ) $@;; - * ) echo " Please choose [y] or [n].";; - esac + read -n 1 -p "Is this correct? [y/n] : " RETRY + case $RETRY in + [Yy]* ) echo ; break;; + [Nn]* ) $@;; + * ) echo " Please choose [y] or [n].";; + esac done } Confirm_Input_Continue () { ### Confirm input. Continue [y/n] while true; do - echo -e $COL_BR_CYAN + echo -e $COL_BR_CYAN read -n 1 -p "(C)ontinue? (R)etry [c/r] : " RETRY - echo -e $COL_RESET + echo -e $COL_RESET case $RETRY in [Cc]* ) echo ; break;; [Rr]* ) $@;; @@ -1101,10 +1101,10 @@ done Confirm_Password () { ### Confirm Password while [ $(eval echo "$1") != $(eval echo "$2") ] - do - echo -e $COL_BR_RED"Passwords do not match"$COL_RESET - sleep 2 - $3 + do + echo -e $COL_BR_RED"Passwords do not match"$COL_RESET + sleep 2 + $3 done } @@ -1128,26 +1128,26 @@ Run_Functions_For_Input () { ### If config file exist then use it. if [ -e "$CONFIG_FILE" ] then - CONFIG_VERSION="$(cat "$CONFIG_FILE" | grep "CONFIG_VERSION" | awk -F"=" '{ print $2 }')" - if [ ! -z "$CONFIG_VERSION" ] && [ "$CONFIG_VERSION" -ge "$MIN_CONFIG_VERSION" ] - then - . "$CONFIG_FILE" - - USE_CONFIG_FILE="1" - echo - echo -e $COL_BR_BLUE"Using config file:"$COL_RESET $COL_BR_GREEN"$CONFIG_FILE"$COL_RESET - echo - sleep 3 - else - echo;echo;echo;echo - echo "*** Config version is incompatible." - echo "Running without the config switch will" - echo "create a new compatible configuration file." - USE_CONFIG_FILE="0" - read -p "Press [Enter] to start." - fi + CONFIG_VERSION="$(cat "$CONFIG_FILE" | grep "CONFIG_VERSION" | awk -F"=" '{ print $2 }')" + if [ ! -z "$CONFIG_VERSION" ] && [ "$CONFIG_VERSION" -ge "$MIN_CONFIG_VERSION" ] + then + . "$CONFIG_FILE" + + USE_CONFIG_FILE="1" + echo + echo -e $COL_BR_BLUE"Using config file:"$COL_RESET $COL_BR_GREEN"$CONFIG_FILE"$COL_RESET + echo + sleep 3 + else + echo;echo;echo;echo + echo "*** Config version is incompatible." + echo "Running without the config switch will" + echo "create a new compatible configuration file." + USE_CONFIG_FILE="0" + read -p "Press [Enter] to start." + fi else - USE_CONFIG_FILE="0" + USE_CONFIG_FILE="0" fi @@ -1166,13 +1166,13 @@ if [ -z $CLUSTERDOMAINNAME ] || [ "$USE_CONFIG_FILE" == "0" ] ; then Choose_Detected_Domain_Name ### prompt for domain info if chosen - if [ "$USE_DETECTED_DOMAIN" != "y" ] - then - Get_Domain_Name - Confirm_Input Get_Domain_Name - else - CLUSTERDOMAINNAME="$(hostname -d)" - fi + if [ "$USE_DETECTED_DOMAIN" != "y" ] + then + Get_Domain_Name + Confirm_Input Get_Domain_Name + else + CLUSTERDOMAINNAME="$(hostname -d)" + fi fi ### Set output directory. @@ -1206,10 +1206,10 @@ Write_Config_File CLUSTERDOMAINNAME ### Prompt to get hostname prefix if [ -z "$USE_HOSTNAME_PREFIX" ] || [ "$USE_CONFIG_FILE" == "0" ] then - if [ -z "$HOSTNAME_PREFIX" ] || [ "$USE_CONFIG_FILE" == "0" ] + if [ -z "$HOSTNAME_PREFIX" ] || [ "$USE_CONFIG_FILE" == "0" ] then - Get_Hostname_Prefix - fi + Get_Hostname_Prefix + fi fi Write_Config_File USE_HOSTNAME_PREFIX Write_Config_File HOSTNAME_PREFIX @@ -1217,52 +1217,52 @@ Write_Config_File HOSTNAME_PREFIX if [ -z "$USE_DATABASE_PREFIX" ] || [ "$USE_CONFIG_FILE" == "0" ] then - if [ "$USE_HOSTNAME_PREFIX" = "y" ] || [ "$USE_HOSTNAME_PREFIX" = "Y" ] - then - Ask_Database_Prefix - fi + if [ "$USE_HOSTNAME_PREFIX" = "y" ] || [ "$USE_HOSTNAME_PREFIX" = "Y" ] + then + Ask_Database_Prefix + fi fi Write_Config_File USE_DATABASE_PREFIX if [ -z $USE_CA_CERT ] || [ "$USE_CONFIG_FILE" == "0" ] then - Choose_SSL_Cert + Choose_SSL_Cert fi #echo "USE_CA_CERT=\"$USE_CA_CERT\"" >> $NEW_CONFIG_FILE Write_Config_File USE_CA_CERT if [ "$USE_CA_CERT" == "N" ] || [ "$USE_CA_CERT" == "n" ] then - Generate_SSL_Cert + Generate_SSL_Cert else - Use_CA_Cert + Use_CA_Cert fi if [ -z $USE_STANDARD_HEAD_CONFIG ] || [ "$USE_CONFIG_FILE" == "0" ] then - Get_Brick_Layout + Get_Brick_Layout fi Write_Config_File USE_STANDARD_HEAD_CONFIG ### Prompt for # of drones per brick. if [ "$USE_STANDARD_HEAD_CONFIG" = "n" ] || [ "$USE_STANDARD_HEAD_CONFIG" = "N" ] then - if [ -z $USEDRONES ] || [ "$USE_CONFIG_FILE" == "0" ] - then - Get_Drone_Config - fi + if [ -z $USEDRONES ] || [ "$USE_CONFIG_FILE" == "0" ] + then + Get_Drone_Config + fi if [ "$USEDRONES" == "Y" ] || [ "$USEDRONES" == "y" ] - then - if [ -z $DRONECOUNT ] || [ "$USE_CONFIG_FILE" == "0" ] - then - Get_Drone_Count - fi - else - echo - echo -e "The cluster will be configured" ${COL_BR_CYAN}without${COL_RESET} "separate drones" - DRONELESS="1" + then + if [ -z $DRONECOUNT ] || [ "$USE_CONFIG_FILE" == "0" ] + then + Get_Drone_Count + fi + else + echo + echo -e "The cluster will be configured" ${COL_BR_CYAN}without${COL_RESET} "separate drones" + DRONELESS="1" fi fi @@ -1272,27 +1272,27 @@ Write_Config_File DRONECOUNT if [ -z $BRICKCOUNT ] || [ "$USE_CONFIG_FILE" == "0" ] then - Get_Brick_Count + Get_Brick_Count fi Write_Config_File BRICKCOUNT if [ "$DRONELESS" = "1" ] then - if [ -z $GENERATE_BRICKS_IPS ] || [ "$USE_CONFIG_FILE" == "0" ] - then - Ask_Use_Manual_Brick_Addresses - fi + if [ -z $GENERATE_BRICKS_IPS ] || [ "$USE_CONFIG_FILE" == "0" ] + then + Ask_Use_Manual_Brick_Addresses + fi fi Write_Config_File GENERATE_BRICKS_IPS if [ "$GENERATE_BRICKS_IPS" = "n" ] #|| [ "$USE_CONFIG_FILE" == "0" ] then - Get_Brick_IP_Addresses + Get_Brick_IP_Addresses fi if [ -z $CHOSEN_REPORTS_NFS_HOSTNAME ] || [ "$USE_CONFIG_FILE" == "0" ] then - EG_Reporter + EG_Reporter fi if [ "$USE_HOSTNAME_PREFIX" = "y" ] || [ "$USE_HOSTNAME_PREFIX" = "Y" ] then @@ -1305,33 +1305,33 @@ Write_Config_File CHOSEN_REPORTS_NFS_HOSTNAME if [ -z $OPENSRF_PASSWORD ] || [ "$USE_CONFIG_FILE" == "0" ] then - Get_OSRF_Cred - Confirm_Password '$OPENSRF_PASSWORD' '$OPENSRF_PASSWORD_CONFIRM' Get_OSRF_Cred - #while [ "$OPENSRF_PASSWORD" != "$OPENSRF_PASSWORD_CONFIRM" ] - # do - # Get_OSRF_Cred - #done + Get_OSRF_Cred + Confirm_Password '$OPENSRF_PASSWORD' '$OPENSRF_PASSWORD_CONFIRM' Get_OSRF_Cred + #while [ "$OPENSRF_PASSWORD" != "$OPENSRF_PASSWORD_CONFIRM" ] + # do + # Get_OSRF_Cred + #done fi Write_Config_File OPENSRF_PASSWORD if [ -z $DATABASE_PASSWORD ] || [ "$USE_CONFIG_FILE" == "0" ] then - Get_DB_Cred - Confirm_Password '$DATABASE_PASSWORD' '$DATABASE_PASSWORD_CONFIRM' Get_DB_Cred - + Get_DB_Cred + Confirm_Password '$DATABASE_PASSWORD' '$DATABASE_PASSWORD_CONFIRM' Get_DB_Cred + fi Write_Config_File DATABASE_PASSWORD if [ -z $EG_ADMIN_USER ] || [ "$USE_CONFIG_FILE" == "0" ] then - Get_EG_Admin_User + Get_EG_Admin_User fi Write_Config_File EG_ADMIN_USER if [ -z $EG_ADMIN_PASSWORD ] || [ "$USE_CONFIG_FILE" == "0" ] then - Get_EG_Admin_Password - Confirm_Password '$EG_ADMIN_PASSWORD' '$EG_ADMIN_PASSWORD_CONFIRM' Get_EG_Admin_Password + Get_EG_Admin_Password + Confirm_Password '$EG_ADMIN_PASSWORD' '$EG_ADMIN_PASSWORD_CONFIRM' Get_EG_Admin_Password fi Write_Config_File EG_ADMIN_PASSWORD @@ -1344,7 +1344,7 @@ Write_Config_File USE_DMZ if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] then Get_DMZ_Subnet - Get_Gateways + Get_Gateways fi Write_Config_File DMZ_NET Write_Config_File DMZ_GATEWAY @@ -1352,73 +1352,73 @@ Write_Config_File PRIVATENET_GATEWAY if [ -z $USE_STANDARD_PRIVATE_NETWORK ] || [ "$USE_CONFIG_FILE" == "0" ] then - Choose_Private_Net + Choose_Private_Net fi Write_Config_File USE_STANDARD_PRIVATE_NETWORK if [ "$USE_STANDARD_PRIVATE_NETWORK" = "n" ] || [ "$USE_STANDARD_PRIVATE_NETWORK" = "N" ] then - if [ "$USE_CONFIG_FILE" == "0" ] - then - Get_Private_Net - Confirm_Input Get_Private_Net - fi - if [ -z $PRIVATENET ] - then - Get_Private_Net - Confirm_Input Get_Private_Net - fi + if [ "$USE_CONFIG_FILE" == "0" ] + then + Get_Private_Net + Confirm_Input Get_Private_Net + fi + if [ -z $PRIVATENET ] + then + Get_Private_Net + Confirm_Input Get_Private_Net + fi fi ORIGIN_PRIVATENET="$PRIVATENET" Write_Config_File PRIVATENET if [ -z $CLUSTERIPADDRESS ] || [ "$USE_CONFIG_FILE" == "0" ] then - Get_Cluster_Public_IP - Confirm_Input Get_Cluster_Public_IP + Get_Cluster_Public_IP + Confirm_Input Get_Cluster_Public_IP fi Write_Config_File CLUSTERIPADDRESS if [ -z $CLUSTERNETMASK ] || [ "$USE_CONFIG_FILE" == "0" ] then - Get_Cluster_Public_Netmask - Confirm_Input Get_Cluster_Public_Netmask + Get_Cluster_Public_Netmask + Confirm_Input Get_Cluster_Public_Netmask fi Write_Config_File CLUSTERNETMASK if [ -z $CLUSTERGATEWAY ] || [ "$USE_CONFIG_FILE" == "0" ] then - Get_Cluster_Public_Gateway - Confirm_Input Get_Cluster_Public_Gateway + Get_Cluster_Public_Gateway + Confirm_Input Get_Cluster_Public_Gateway fi Write_Config_File CLUSTERGATEWAY if [ -z $LVS01_PHYSICAL_PUBLIC_IP ] || [ "$USE_CONFIG_FILE" == "0" ] then - Get_Lvs01_Physical_Public_IP - Confirm_Input Get_Lvs01_Physical_Public_IP + Get_Lvs01_Physical_Public_IP + Confirm_Input Get_Lvs01_Physical_Public_IP fi Write_Config_File LVS01_PHYSICAL_PUBLIC_IP if [ -z $LVS02_PHYSICAL_PUBLIC_IP ] || [ "$USE_CONFIG_FILE" == "0" ] then - Get_Lvs02_Physical_Public_IP - Confirm_Input Get_Lvs02_Physical_Public_IP + Get_Lvs02_Physical_Public_IP + Confirm_Input Get_Lvs02_Physical_Public_IP fi Write_Config_File LVS02_PHYSICAL_PUBLIC_IP if [ -z $USE_SYNDETICS ] || [ "$USE_SYNDETICS" == "0" ] then - Get_Use_Syndetics + Get_Use_Syndetics fi Write_Config_File USE_SYNDETICS if [[ "$USE_SYNDETICS" == "y" || "$USE_SYNDETICS" == "Y" ]] then - if [ -z "$SYNDETICS_USER_ID" ] || [ "$SYNDETICS_USER_ID" == "0" ] - then - Get_Syndetics_Userid - fi + if [ -z "$SYNDETICS_USER_ID" ] || [ "$SYNDETICS_USER_ID" == "0" ] + then + Get_Syndetics_Userid + fi fi Write_Config_File SYNDETICS_USER_ID @@ -1442,14 +1442,14 @@ then if [ -z "$NOVELIST_PASSWORD" ] || [ "$NOVELIST_PASSWORD" == "0" ] then Get_Novelist_Password - Confirm_Password '$NOVELIST_PASSWORD' '$NOVELIST_PASSWORD_CONFIRM' Get_Novelist_Password + Confirm_Password '$NOVELIST_PASSWORD' '$NOVELIST_PASSWORD_CONFIRM' Get_Novelist_Password fi fi Write_Config_File NOVELIST_PASSWORD #if [ "$MONITOR_ADMIN_USERNAME" = "" ] || [ "$MONITOR_ADMIN_USERNAME" = "0" ] #then -# Get_Monitor_Admin_Username +# Get_Monitor_Admin_Username #fi #Write_Config_File MONITOR_ADMIN_USERNAME @@ -1462,13 +1462,13 @@ Write_Config_File MONITOR_ADMIN_PASSWORD #if [ -z $NOTIFY_EMAIL_ADDRESS ] || [ "$NOTIFY_EMAIL_ADDRESS" == "0" ] #then -# Get_Notification_Email +# Get_Notification_Email #fi #Write_Config_File NOTIFY_EMAIL_ADDRESS #if [ -z $SYNDETICS_USER_ID ] || [ "$SYNDETICS_USER_ID" == "0" ] -# then -# Get_Syndetics_Userid +# then +# Get_Syndetics_Userid #fi #Write_Config_File SYNDETICS_USER_ID @@ -1484,7 +1484,7 @@ echo;echo -e $COL_RESET Run_Functions_For_Input if [ "$USE_CONFIG_FILE" == "0" ] then - Confirm_Input_Continue Run_Functions_For_Input + Confirm_Input_Continue Run_Functions_For_Input fi GetNetInfo ${CLUSTERIPADDRESS} ${CLUSTERNETMASK} @@ -1498,80 +1498,80 @@ if [ "$USE_HOSTNAME_PREFIX" = "y" ] || [ "$USE_HOSTNAME_PREFIX" = "Y" ]; then ### With hostname prefix. PRFX="$HOSTNAME_PREFIX" - ### All the machines in the cluster except BRICKS and LVS servers. - MACHINES_NO_BRICKS_LVS="${PRFX}-db01 ${PRFX}-db02 ${PRFX}-db03 ${PRFX}-logger01 ${PRFX}-utility01 ${PRFX}-utility02 ${PRFX}-utility03 ${PRFX}-sip01 ${PRFX}-sip02 ${PRFX}-reporter01 ${PRFX}-memcache01 ${PRFX}-memcache02 ${PRFX}-monitor01 ${PRFX}-monitor02 ${PRFX}-backup01 ${PRFX}-admin01" + ### All the machines in the cluster except BRICKS and LVS servers. + MACHINES_NO_BRICKS_LVS="${PRFX}-db01 ${PRFX}-db02 ${PRFX}-db03 ${PRFX}-logger01 ${PRFX}-utility01 ${PRFX}-utility02 ${PRFX}-utility03 ${PRFX}-sip01 ${PRFX}-sip02 ${PRFX}-reporter01 ${PRFX}-memcache01 ${PRFX}-memcache02 ${PRFX}-monitor01 ${PRFX}-monitor02 ${PRFX}-backup01 ${PRFX}-admin01" - ### All the machines in the cluster except BRICKS. - MACHINES_NO_BRICKS="${PRFX}-lvs01 ${PRFX}-lvs02 ${PRFX}-db01 ${PRFX}-db02 ${PRFX}-db03 ${PRFX}-logger01 ${PRFX}-utility01 ${PRFX}-utility02 ${PRFX}-utility03 ${PRFX}-sip01 ${PRFX}-sip02 ${PRFX}-reporter01 ${PRFX}-memcache01 ${PRFX}-memcache02 ${PRFX}-monitor01 ${PRFX}-monitor02 ${PRFX}-backup01 ${PRFX}-admin01" + ### All the machines in the cluster except BRICKS. + MACHINES_NO_BRICKS="${PRFX}-lvs01 ${PRFX}-lvs02 ${PRFX}-db01 ${PRFX}-db02 ${PRFX}-db03 ${PRFX}-logger01 ${PRFX}-utility01 ${PRFX}-utility02 ${PRFX}-utility03 ${PRFX}-sip01 ${PRFX}-sip02 ${PRFX}-reporter01 ${PRFX}-memcache01 ${PRFX}-memcache02 ${PRFX}-monitor01 ${PRFX}-monitor02 ${PRFX}-backup01 ${PRFX}-admin01" - ### All OpenSRF nodes except bricks. - MACHINES_OSRF_NO_BRICKS="${PRFX}-utility01 ${PRFX}-utility02 ${PRFX}-utility03 ${PRFX}-sip01 ${PRFX}-sip02 ${PRFX}-reporter01" + ### All OpenSRF nodes except bricks. + MACHINES_OSRF_NO_BRICKS="${PRFX}-utility01 ${PRFX}-utility02 ${PRFX}-utility03 ${PRFX}-sip01 ${PRFX}-sip02 ${PRFX}-reporter01" - ### Only LVS machines. - MACHINES_LVS_ONLY="${PRFX}-lvs01 ${PRFX}-lvs02" + ### Only LVS machines. + MACHINES_LVS_ONLY="${PRFX}-lvs01 ${PRFX}-lvs02" - ### Only SIP machines. - MACHINES_SIP_ONLY="${PRFX}-sip01 ${PRFX}-sip02" + ### Only SIP machines. + MACHINES_SIP_ONLY="${PRFX}-sip01 ${PRFX}-sip02" - ### Only DB machines. - MACHINES_DB_ONLY="${PRFX}-db01 ${PRFX}-db02 ${PRFX}-db03" + ### Only DB machines. + MACHINES_DB_ONLY="${PRFX}-db01 ${PRFX}-db02 ${PRFX}-db03" - ### Only Memcache servers. - MACHINES_MEMCACHE_ONLY="${PRFX}-memcache01 ${PRFX}-memcache02" - - ### Only logger machines. - MACHINES_LOGGER="${PRFX}-logger01" - - ### Only utility machines. - MACHINES_UTILITY="${PRFX}-utility01 ${PRFX}-utility02 ${PRFX}-utility03" + ### Only Memcache servers. + MACHINES_MEMCACHE_ONLY="${PRFX}-memcache01 ${PRFX}-memcache02" + + ### Only logger machines. + MACHINES_LOGGER="${PRFX}-logger01" + + ### Only utility machines. + MACHINES_UTILITY="${PRFX}-utility01 ${PRFX}-utility02 ${PRFX}-utility03" - ### Only backup machines. - MACHINES_BACKUP="${PRFX}-backup01" - - ### Only monitor machines. - MACHINES_MONITOR="${PRFX}-monitor01 ${PRFX}-monitor02" + ### Only backup machines. + MACHINES_BACKUP="${PRFX}-backup01" + + ### Only monitor machines. + MACHINES_MONITOR="${PRFX}-monitor01 ${PRFX}-monitor02" - ### Only reporter machines. - MACHINES_REPORTER="${PRFX}-reporter01" + ### Only reporter machines. + MACHINES_REPORTER="${PRFX}-reporter01" else ### Without hostname prefix. - ### All the machines in the cluster except BRICKS and LVS servers. - MACHINES_NO_BRICKS_LVS="db01 db02 db03 logger01 utility01 utility02 utility03 sip01 sip02 reporter01 memcache01 memcache02 monitor01 monitor02 backup01 admin01" + ### All the machines in the cluster except BRICKS and LVS servers. + MACHINES_NO_BRICKS_LVS="db01 db02 db03 logger01 utility01 utility02 utility03 sip01 sip02 reporter01 memcache01 memcache02 monitor01 monitor02 backup01 admin01" - ### All the machines in the cluster except BRICKS. - MACHINES_NO_BRICKS="lvs01 lvs02 db01 db02 db03 logger01 utility01 utility02 utility03 sip01 sip02 reporter01 memcache01 memcache02 monitor01 monitor02 backup01 admin01" + ### All the machines in the cluster except BRICKS. + MACHINES_NO_BRICKS="lvs01 lvs02 db01 db02 db03 logger01 utility01 utility02 utility03 sip01 sip02 reporter01 memcache01 memcache02 monitor01 monitor02 backup01 admin01" - ### All OpenSRF nodes except bricks. - MACHINES_OSRF_NO_BRICKS="utility01 utility02 utility03 sip01 sip02 reporter01" + ### All OpenSRF nodes except bricks. + MACHINES_OSRF_NO_BRICKS="utility01 utility02 utility03 sip01 sip02 reporter01" - ### Only LVS machines. - MACHINES_LVS_ONLY="lvs01 lvs02" + ### Only LVS machines. + MACHINES_LVS_ONLY="lvs01 lvs02" - ### Only SIP machines. - MACHINES_SIP_ONLY="sip01 sip02" + ### Only SIP machines. + MACHINES_SIP_ONLY="sip01 sip02" - ### Only DB machines. - MACHINES_DB_ONLY="db01 db02 db03" + ### Only DB machines. + MACHINES_DB_ONLY="db01 db02 db03" ### Only Memcache servers. MACHINES_MEMCACHE_ONLY="memcache01 memcache02" - ### Only logger machines. + ### Only logger machines. MACHINES_LOGGER="logger01" - ### Only utility machines. + ### Only utility machines. MACHINES_UTILITY="utility01 utility02 utility03" ### Only backup machines. MACHINES_BACKUP="backup01" - - ### Only monitor machines. - MACHINES_MONITOR="monitor01 monitor02" + + ### Only monitor machines. + MACHINES_MONITOR="monitor01 monitor02" - ### Only reporter machines. + ### Only reporter machines. MACHINES_REPORTER="reporter01" fi @@ -1580,15 +1580,15 @@ HOSTNAMES_NO_BRICKS="lvs01 lvs02 db01 db02 db03 logger01 utility01 utility02 uti ### Setup Privatenet IP for all hosts except bricks. if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] then - Set_DMZ_Net - echo PRIVATENET SET to $PRIVATENET - LVS01_PRIVATE_SHARED_IP="${PRIVATENET}.1" - LVS01_PRIVATE_IP="${PRIVATENET}.2" - LVS02_PRIVATE_IP="${PRIVATENET}.3" - Unset_DMZ_Net - echo PRIVATENET UNSET to $PRIVATENET + Set_DMZ_Net + echo PRIVATENET SET to $PRIVATENET + LVS01_PRIVATE_SHARED_IP="${PRIVATENET}.1" + LVS01_PRIVATE_IP="${PRIVATENET}.2" + LVS02_PRIVATE_IP="${PRIVATENET}.3" + Unset_DMZ_Net + echo PRIVATENET UNSET to $PRIVATENET else - LVS01_PRIVATE_SHARED_IP="${PRIVATENET}.1" + LVS01_PRIVATE_SHARED_IP="${PRIVATENET}.1" LVS01_PRIVATE_IP="${PRIVATENET}.2" LVS02_PRIVATE_IP="${PRIVATENET}.3" fi @@ -1646,45 +1646,45 @@ cp -f "$TEMPLATEDIR/lvs/ha.cf" "$TMPFOLDER/ha.cf" cp -f "$TEMPLATEDIR/lvs/haresources" "$TMPFOLDER/haresources" for LVS_NODE in $MACHINES_LVS_ONLY do - if echo $LVS_NODE | grep -q lvs01 - then - sed -i "s^FIRST_LVS_SERVER^$LVS_NODE^g" "$TMPFOLDER/ha.cf" - sed -i "s^FIRST_LVS^$LVS_NODE^g" "$TMPFOLDER/haresources" - fi - if echo $LVS_NODE | grep -q lvs02 - then - sed -i "s^SECOND_LVS_SERVER^$LVS_NODE^g" "$TMPFOLDER/ha.cf" - fi + if echo $LVS_NODE | grep -q lvs01 + then + sed -i "s^FIRST_LVS_SERVER^$LVS_NODE^g" "$TMPFOLDER/ha.cf" + sed -i "s^FIRST_LVS^$LVS_NODE^g" "$TMPFOLDER/haresources" + fi + if echo $LVS_NODE | grep -q lvs02 + then + sed -i "s^SECOND_LVS_SERVER^$LVS_NODE^g" "$TMPFOLDER/ha.cf" + fi done for LVS in $MACHINES_LVS_ONLY do - LVSDIR="$LVS/etc/ha.d" + LVSDIR="$LVS/etc/ha.d" mkdir -p "$OUTDIR/$LVSDIR" mkdir -p "$OUTDIR/$LVS/etc/network" mkdir -p "$OUTDIR/$LVS/etc/postfix" cp -f "$TMPFOLDER/ha.cf" "$OUTDIR/$LVSDIR" cp -f "$TMPFOLDER/haresources" "$OUTDIR/$LVSDIR" - cp -f "$TMPFOLDER/authkeys" "$OUTDIR/$LVSDIR" + cp -f "$TMPFOLDER/authkeys" "$OUTDIR/$LVSDIR" cp -f "$TEMPLATEDIR/lvs/iptables-rules.fw" "$OUTDIR/$LVS/etc/network" cp -f "$TEMPLATEDIR/lvs/rc.local" "$OUTDIR/$LVS/etc" cp -f "$TEMPLATEDIR/lvs/ntp.conf" "$OUTDIR/$LVS/etc" cp -f "$TEMPLATEDIR/lvs/resolv.conf" "$OUTDIR/$LVS/etc" cp -f "$TEMPLATEDIR/lvs/main.cf" "$OUTDIR/$LVS/etc/postfix" - if [ -e "$CUSTOMDIR/${SIP_FW_WHITELIST_FILE}" ] - then - echo - echo -e ${COL_GREEN}"Using SIP firewall whitelist found in ${CUSTOMDIR}"${COL_RESET} - sleep 2 - cp -f "${CUSTOMDIR}/${SIP_FW_WHITELIST_FILE}" "$OUTDIR/$LVS/etc/network" - else - echo -e ${COL_BR_RED}"sip_whitelist.fw NOT FOUND in ${CUSTOMDIR}"${COL_RESET} - sleep 2 - fi - sed -i "s^CLUSTER_DOMAIN_NAME^$CLUSTERDOMAINNAME^g" "$OUTDIR/$LVS/etc/resolv.conf" - sed -i "s^HostName^$LVS^g" "$OUTDIR/$LVS/etc/postfix/main.cf" - sed -i "s^ClusterDomainName^$CLUSTERDOMAINNAME^g" "$OUTDIR/$LVS/etc/postfix/main.cf" + if [ -e "$CUSTOMDIR/${SIP_FW_WHITELIST_FILE}" ] + then + echo + echo -e ${COL_GREEN}"Using SIP firewall whitelist found in ${CUSTOMDIR}"${COL_RESET} + sleep 2 + cp -f "${CUSTOMDIR}/${SIP_FW_WHITELIST_FILE}" "$OUTDIR/$LVS/etc/network" + else + echo -e ${COL_BR_RED}"sip_whitelist.fw NOT FOUND in ${CUSTOMDIR}"${COL_RESET} + sleep 2 + fi + sed -i "s^CLUSTER_DOMAIN_NAME^$CLUSTERDOMAINNAME^g" "$OUTDIR/$LVS/etc/resolv.conf" + sed -i "s^HostName^$LVS^g" "$OUTDIR/$LVS/etc/postfix/main.cf" + sed -i "s^ClusterDomainName^$CLUSTERDOMAINNAME^g" "$OUTDIR/$LVS/etc/postfix/main.cf" sed -i "s^Priv_NET^${PRIVATENET}^g" "$OUTDIR/$LVS/etc/network/iptables-rules.fw" sed -i "s^Priv_NET^${PRIVATENET}^g" "$OUTDIR/$LVS/etc/postfix/main.cf" sed -i "s^Pub_BCAST^${PUB_BCAST}^g" "$OUTDIR/$LVS/etc/network/iptables-rules.fw" @@ -1692,51 +1692,51 @@ for LVS in $MACHINES_LVS_ONLY sed -i "s^ClusterPublic_IP^${CLUSTERIPADDRESS}^g" "$OUTDIR/$LVS/etc/ha.d/haresources" sed -i "s^ClusterPublic_CIDR^${CLUSTER_CIDR}^g" "$OUTDIR/$LVS/etc/ha.d/haresources" sed -i "s^ClusterPublic_Bcast^${PUB_BCAST}^g" "$OUTDIR/$LVS/etc/ha.d/haresources" - sed -i "s^Lvs01Private_Shared_IP^${LVS01_PRIVATE_SHARED_IP}^g" "$OUTDIR/$LVS/etc/ha.d/haresources" - if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] - then - sed -i "s^lvs01Private_Net^${DMZ_NET}^g" "$OUTDIR/$LVS/etc/ha.d/haresources" - else - sed -i "s^lvs01Private_Net^${PRIVATENET}^g" "$OUTDIR/$LVS/etc/ha.d/haresources" - fi - - - ### Configure the maintenance page on LVS servers - mkdir -p "$OUTDIR/$LVS/var/www/html" - if $(ls $CUSTOMDIR/maint_page |grep -q "index.html\|index.php") + sed -i "s^Lvs01Private_Shared_IP^${LVS01_PRIVATE_SHARED_IP}^g" "$OUTDIR/$LVS/etc/ha.d/haresources" + if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] + then + sed -i "s^lvs01Private_Net^${DMZ_NET}^g" "$OUTDIR/$LVS/etc/ha.d/haresources" + else + sed -i "s^lvs01Private_Net^${PRIVATENET}^g" "$OUTDIR/$LVS/etc/ha.d/haresources" + fi + + + ### Configure the maintenance page on LVS servers + mkdir -p "$OUTDIR/$LVS/var/www/html" + if $(ls $CUSTOMDIR/maint_page |grep -q "index.html\|index.php") then - echo;echo "Installing custom maintenance page on ${LVS}..." - CUSTOM_MAINT_PAGE_INDEX="y" + echo;echo "Installing custom maintenance page on ${LVS}..." + CUSTOM_MAINT_PAGE_INDEX="y" fi - if [ "$CUSTOM_MAINT_PAGE_INDEX" = "y" ] - then - cp -f $CUSTOMDIR/maint_page/* "$OUTDIR/$LVS/var/www/html" - else - cp -f $TEMPLATEDIR/lvs/maint_page/* "$OUTDIR/$LVS/var/www/html" - fi - - - ### configure apache2 ssl for maint. page. - mkdir -p "$OUTDIR/$LVS/etc/apache2/ssl" && cp -f "${CERT_DIR}/server.key" "$OUTDIR/$LVS/etc/apache2/ssl" - [ -e "${CERT_DIR}/ca.crt" ] && cp -f "${CERT_DIR}/ca.crt" "$OUTDIR/$LVS/etc/apache2/ssl" + if [ "$CUSTOM_MAINT_PAGE_INDEX" = "y" ] + then + cp -f $CUSTOMDIR/maint_page/* "$OUTDIR/$LVS/var/www/html" + else + cp -f $TEMPLATEDIR/lvs/maint_page/* "$OUTDIR/$LVS/var/www/html" + fi + + + ### configure apache2 ssl for maint. page. + mkdir -p "$OUTDIR/$LVS/etc/apache2/ssl" && cp -f "${CERT_DIR}/server.key" "$OUTDIR/$LVS/etc/apache2/ssl" + [ -e "${CERT_DIR}/ca.crt" ] && cp -f "${CERT_DIR}/ca.crt" "$OUTDIR/$LVS/etc/apache2/ssl" cp -f "${CERT_DIR}/server.crt" "$OUTDIR/$LVS/etc/apache2/ssl" - cp -f "${CERT_DIR}/dhparams.pem" "$OUTDIR/$LVS/etc/apache2/ssl" + cp -f "${CERT_DIR}/dhparams.pem" "$OUTDIR/$LVS/etc/apache2/ssl" done ### Start hosts and DNS zone file configuration. if [ "$USE_HOSTNAME_PREFIX" = "y" ] || [ "$USE_HOSTNAME_PREFIX" = "Y" ] - then - cp $TEMPLATEDIR/hosts-footer-prefixed $TMPFOLDER/hosts-footer - cp "$TEMPLATEDIR/lvs/bind/zonefile-footer-prefixed" $TMPFOLDER/zonefile-footer - cp "$TEMPLATEDIR/lvs/bind/revzonefile-footer-prefixed" $TMPFOLDER/revzonefile-footer - sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" $TMPFOLDER/hosts-footer - sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" $TMPFOLDER/zonefile-footer - sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" $TMPFOLDER/revzonefile-footer - else - cp $TEMPLATEDIR/hosts-footer $TMPFOLDER - cp "$TEMPLATEDIR/lvs/bind/zonefile-footer" $TMPFOLDER - cp "$TEMPLATEDIR/lvs/bind/revzonefile-footer" $TMPFOLDER + then + cp $TEMPLATEDIR/hosts-footer-prefixed $TMPFOLDER/hosts-footer + cp "$TEMPLATEDIR/lvs/bind/zonefile-footer-prefixed" $TMPFOLDER/zonefile-footer + cp "$TEMPLATEDIR/lvs/bind/revzonefile-footer-prefixed" $TMPFOLDER/revzonefile-footer + sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" $TMPFOLDER/hosts-footer + sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" $TMPFOLDER/zonefile-footer + sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" $TMPFOLDER/revzonefile-footer + else + cp $TEMPLATEDIR/hosts-footer $TMPFOLDER + cp "$TEMPLATEDIR/lvs/bind/zonefile-footer" $TMPFOLDER + cp "$TEMPLATEDIR/lvs/bind/revzonefile-footer" $TMPFOLDER fi sed -i "s^Priv_NET^${PRIVATENET}^g" $TMPFOLDER/hosts-footer sed -i "s^ClusterDomainName^${CLUSTERDOMAINNAME}^g" $TMPFOLDER/hosts-footer @@ -1747,38 +1747,38 @@ sed -i "s^domain.org^${CLUSTERDOMAINNAME}^g" $TMPFOLDER/revzonefile-footer echo echo Begin Reports Output Confiugration. if [ "$CHOSEN_REPORTS_NFS_HOSTNAME" = "db01" ] - then - REPORTS_NFS_HOSTNAME_IP="${PRIVATENET}.101" - elif [ "$CHOSEN_REPORTS_NFS_HOSTNAME" = "db02" ] - then - REPORTS_NFS_HOSTNAME_IP="${PRIVATENET}.102" - elif [ "$CHOSEN_REPORTS_NFS_HOSTNAME" = "db03" ] - then - REPORTS_NFS_HOSTNAME_IP="${PRIVATENET}.103" - elif [ "$CHOSEN_REPORTS_NFS_HOSTNAME" = "reporter01" ] - then - REPORTS_NFS_HOSTNAME_IP="${PRIVATENET}.141" + then + REPORTS_NFS_HOSTNAME_IP="${PRIVATENET}.101" + elif [ "$CHOSEN_REPORTS_NFS_HOSTNAME" = "db02" ] + then + REPORTS_NFS_HOSTNAME_IP="${PRIVATENET}.102" + elif [ "$CHOSEN_REPORTS_NFS_HOSTNAME" = "db03" ] + then + REPORTS_NFS_HOSTNAME_IP="${PRIVATENET}.103" + elif [ "$CHOSEN_REPORTS_NFS_HOSTNAME" = "reporter01" ] + then + REPORTS_NFS_HOSTNAME_IP="${PRIVATENET}.141" fi if [ ! -z "$REPORTS_NFS_HOSTNAME" ] - then - if ! grep -q "$REPORTS_NFS_HOSTNAME" $TMPFOLDER/hosts-footer - then - ADD_REPORTS_SHARE="1" - REPORTS_NFS_HOSTNAME_IP="${PRIVATENET}.161" - #sed -i "9a\\${PRIVATENET}.161\t${REPORTS_NFS_HOSTNAME}.${CLUSTERDOMAINNAME} ${REPORTS_NFS_HOSTNAME}" /tmp/hosts-footer - sed -i "/.171/i\\${PRIVATENET}.161\t${REPORTS_NFS_HOSTNAME}.${CLUSTERDOMAINNAME}\t${REPORTS_NFS_HOSTNAME}" $TMPFOLDER/hosts-footer - #sed -i "17a\\${REPORTS_NFS_HOSTNAME}\tA\t${PRIVATENET}.161" /tmp/zonefile-footer - sed -i "/.171/i\\${REPORTS_NFS_HOSTNAME}\tA\t${PRIVATENET}.161" $TMPFOLDER/zonefile-footer - #sed -i "15a\\161\tIN\tPTR\t${REPORTS_NFS_HOSTNAME}.${CLUSTERDOMAINNAME}." /tmp/revzonefile-footer - sed -i "/171/i\161\tIN\tPTR\t${REPORTS_NFS_HOSTNAME}.${CLUSTERDOMAINNAME}." $TMPFOLDER/revzonefile-footer - fi + then + if ! grep -q "$REPORTS_NFS_HOSTNAME" $TMPFOLDER/hosts-footer + then + ADD_REPORTS_SHARE="1" + REPORTS_NFS_HOSTNAME_IP="${PRIVATENET}.161" + #sed -i "9a\\${PRIVATENET}.161\t${REPORTS_NFS_HOSTNAME}.${CLUSTERDOMAINNAME} ${REPORTS_NFS_HOSTNAME}" /tmp/hosts-footer + sed -i "/.171/i\\${PRIVATENET}.161\t${REPORTS_NFS_HOSTNAME}.${CLUSTERDOMAINNAME}\t${REPORTS_NFS_HOSTNAME}" $TMPFOLDER/hosts-footer + #sed -i "17a\\${REPORTS_NFS_HOSTNAME}\tA\t${PRIVATENET}.161" /tmp/zonefile-footer + sed -i "/.171/i\\${REPORTS_NFS_HOSTNAME}\tA\t${PRIVATENET}.161" $TMPFOLDER/zonefile-footer + #sed -i "15a\\161\tIN\tPTR\t${REPORTS_NFS_HOSTNAME}.${CLUSTERDOMAINNAME}." /tmp/revzonefile-footer + sed -i "/171/i\161\tIN\tPTR\t${REPORTS_NFS_HOSTNAME}.${CLUSTERDOMAINNAME}." $TMPFOLDER/revzonefile-footer + fi fi if [ ! -e "${OUTDIR}/${REPORTS_NFS_HOSTNAME}" ] - then - mkdir -p "${OUTDIR}/${REPORTS_NFS_HOSTNAME}/etc/network" || echo "failed to create : ${OUTDIR}/${REPORTS_NFS_HOSTNAME}/etc/network" + then + mkdir -p "${OUTDIR}/${REPORTS_NFS_HOSTNAME}/etc/network" || echo "failed to create : ${OUTDIR}/${REPORTS_NFS_HOSTNAME}/etc/network" fi mkdir -p "${OUTDIR}/${REPORTS_NFS_HOSTNAME}/storage/reports-output" echo End Reports Output Confiugration. @@ -1797,7 +1797,7 @@ sed -i "s^LVS02_Priv_IP^$LVS02_PRIVATE_IP^g" "$TMPFOLDER/resolv.conf" ### Start Logger setup. if grep -q 'Debian GNU/Linux 6' /etc/issue then - OSDISTRO="Debian6" + OSDISTRO="Debian6" fi cp $TEMPLATEDIR/rsyslog/60-evergreen-ils.conf $TMPFOLDER/60-evergreen-ils.conf sed -i "s^CLUSTER_DOMAINNAME^$CLUSTERDOMAINNAME^g" $TMPFOLDER/60-evergreen-ils.conf @@ -1818,14 +1818,14 @@ CLUSTER_TLD="$(echo $CLUSTERDOMAINNAME |awk -F"." '{ print $NF }')" [ -e "$TMPREVZONEFILE_DMZ" ] && rm -f "$TMPREVZONEFILE_DMZ" [ -e "$TMPOSRFNODES" ] && rm -f "$TMPOSRFNODES" if [ "$USE_HOSTNAME_PREFIX" = "y" ] || [ "$USE_HOSTNAME_PREFIX" = "Y" ] - then - cat "$TEMPLATEDIR/hosts-header-prefixed" > "$TMPHOSTS" - cat "$TEMPLATEDIR/lvs/bind/zonefile-header-prefixed" > "$TMPZONEFILE" - sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" "$TMPHOSTS" - sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" "$TMPZONEFILE" - else - cat $TEMPLATEDIR/hosts-header > "$TMPHOSTS" - cat "$TEMPLATEDIR/lvs/bind/zonefile-header" > "$TMPZONEFILE" + then + cat "$TEMPLATEDIR/hosts-header-prefixed" > "$TMPHOSTS" + cat "$TEMPLATEDIR/lvs/bind/zonefile-header-prefixed" > "$TMPZONEFILE" + sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" "$TMPHOSTS" + sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" "$TMPZONEFILE" + else + cat $TEMPLATEDIR/hosts-header > "$TMPHOSTS" + cat "$TEMPLATEDIR/lvs/bind/zonefile-header" > "$TMPZONEFILE" fi cat "$TEMPLATEDIR/lvs/bind/revzonefile-header" > "$TMPREVZONEFILE" @@ -1841,34 +1841,34 @@ sed -i "s^_REV_PRIVATE_NET^$REV_PRIVATENET^g" "$TMPREVZONEFILE" if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] then - cat "$TEMPLATEDIR/lvs/bind/revzonefile-header" > "$TMPREVZONEFILE_DMZ" + cat "$TEMPLATEDIR/lvs/bind/revzonefile-header" > "$TMPREVZONEFILE_DMZ" - - ### Split the DMZ network into 3 separate octects. - DMZ_NET_1ST="$(echo $DMZ_NET | awk -F"." '{ print $1 }')" - DMZ_NET_2ND="$(echo $DMZ_NET | awk -F"." '{ print $2 }')" - DMZ_NET_3RD="$(echo $DMZ_NET | awk -F"." '{ print $3 }')" + + ### Split the DMZ network into 3 separate octects. + DMZ_NET_1ST="$(echo $DMZ_NET | awk -F"." '{ print $1 }')" + DMZ_NET_2ND="$(echo $DMZ_NET | awk -F"." '{ print $2 }')" + DMZ_NET_3RD="$(echo $DMZ_NET | awk -F"." '{ print $3 }')" - ### Reverse the DMZ net for DNS reverse zone. - REV_DMZ_NET="${DMZ_NET_3RD}.${DMZ_NET_2ND}.${DMZ_NET_1ST}" + ### Reverse the DMZ net for DNS reverse zone. + REV_DMZ_NET="${DMZ_NET_3RD}.${DMZ_NET_2ND}.${DMZ_NET_1ST}" - sed -i "s^_REV_PRIVATE_NET^$REV_DMZ_NET^g" "$TMPREVZONEFILE_DMZ" + sed -i "s^_REV_PRIVATE_NET^$REV_DMZ_NET^g" "$TMPREVZONEFILE_DMZ" fi ### Add lvs servers entry to the global hosts file and DNS zone file. NUM=0 for LVS_SERVERS in $MACHINES_LVS_ONLY - do - ((NUM++)) - #echo "$LVS01_PRIVATE_IP $LVS_SERVERS.${CLUSTERDOMAINNAME} $LVS_SERVERS " >> "$TMPHOSTS" - eval echo "\$LVS0${NUM}_PRIVATE_IP $LVS_SERVERS.${CLUSTERDOMAINNAME} $LVS_SERVERS " >> "$TMPHOSTS" - eval printf "$LVS_SERVERS\\\tA\\\t\$LVS0${NUM}_PRIVATE_IP\\\n" >> "$TMPZONEFILE" - if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] - then - printf "0${NUM}\tIN\tPTR\t$LVS_SERVERS.${CLUSTERDOMAINNAME}.\n" >> "$TMPREVZONEFILE_DMZ" - else - printf "0${NUM}\tIN\tPTR\t$LVS_SERVERS.${CLUSTERDOMAINNAME}.\n" >> "$TMPREVZONEFILE" - fi + do + ((NUM++)) + #echo "$LVS01_PRIVATE_IP $LVS_SERVERS.${CLUSTERDOMAINNAME} $LVS_SERVERS " >> "$TMPHOSTS" + eval echo "\$LVS0${NUM}_PRIVATE_IP $LVS_SERVERS.${CLUSTERDOMAINNAME} $LVS_SERVERS " >> "$TMPHOSTS" + eval printf "$LVS_SERVERS\\\tA\\\t\$LVS0${NUM}_PRIVATE_IP\\\n" >> "$TMPZONEFILE" + if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] + then + printf "0${NUM}\tIN\tPTR\t$LVS_SERVERS.${CLUSTERDOMAINNAME}.\n" >> "$TMPREVZONEFILE_DMZ" + else + printf "0${NUM}\tIN\tPTR\t$LVS_SERVERS.${CLUSTERDOMAINNAME}.\n" >> "$TMPREVZONEFILE" + fi done @@ -1879,14 +1879,14 @@ NETCFGFILE="$OUTDIR/${CLUSTERDOMAINNAME}_network_config.txt" cp $TEMPLATEDIR/opensrf.xml/opensrf.xml-header $TMPOPENSRF_XML if [ "$USE_DATABASE_PREFIX" = "y" ] || [ "$USE_DATABASE_PREFIX" = "Y" ] then - sed -i "s^evergreen^${HOSTNAME_PREFIX}_evergreen^g" $TMPOPENSRF_XML + sed -i "s^evergreen^${HOSTNAME_PREFIX}_evergreen^g" $TMPOPENSRF_XML fi #sed -i "s^DatabasePassword^$DATABASE_PASSWORD^g" $TMPOPENSRF_XML sed -i "s^DatabasePassword^$(echo $DATABASE_PASSWORD | sed -e 's^&^\\\&^g' -e 's/\^/\\\^/g')^g" $TMPOPENSRF_XML # the below line appears to not be doing anything # sed -i "s^DatabaseHostName^db01^g" $TMPOPENSRF_XML if [ -n "$HOSTNAME_PREFIX" ]; then - sed -i "s^>\([A-Za-z0-9-]*\.ClusterDomainName\)^>$HOSTNAME_PREFIX-\1^g" $TMPOPENSRF_XML + sed -i "s^>\([A-Za-z0-9-]*\.ClusterDomainName\)^>$HOSTNAME_PREFIX-\1^g" $TMPOPENSRF_XML fi sed -i "s^ClusterDomainName^$CLUSTERDOMAINNAME^g" $TMPOPENSRF_XML sed -i "s^memcache01_IP^$MEMCACHE01_IP^g" $TMPOPENSRF_XML @@ -1894,19 +1894,19 @@ sed -i "s^memcache02_IP^$MEMCACHE02_IP^g" $TMPOPENSRF_XML sed -i "s^/tmp^$VANDELAY_PATH^g" $TMPOPENSRF_XML echo "enabling eg.conf..." if [ -e "${CUSTOMDIR}/zips.txt" ] - then - sed -i 's^^^g' $TMPOPENSRF_XML + then + sed -i 's^^^g' $TMPOPENSRF_XML fi ### Write the Syndetics login information to both opensrf.xml and eg_vhost for alternate configs if [ "$USE_SYNDETICS" == "y" ]|| [ "$USE_SYNDETICS" == "Y" ] - then - sed -i 's^::OpenLibrary^::Syndetic^g' $TMPOPENSRF_XML - sed -i 's^OpenLibrary added content^Syndetics added content^g' $TMPOPENSRF_XML - sed -i "s^MODULE_USER_ID^$SYNDETICS_USER_ID^g" $TMPOPENSRF_XML - sed -i '/OpenILS::WWW::/a \\t https://syndetics.com/index.aspx' $TMPOPENSRF_XML + then + sed -i 's^::OpenLibrary^::Syndetic^g' $TMPOPENSRF_XML + sed -i 's^OpenLibrary added content^Syndetics added content^g' $TMPOPENSRF_XML + sed -i "s^MODULE_USER_ID^$SYNDETICS_USER_ID^g" $TMPOPENSRF_XML + sed -i '/OpenILS::WWW::/a \\t https://syndetics.com/index.aspx' $TMPOPENSRF_XML fi ### Start setup of munin.conf file @@ -1918,178 +1918,186 @@ cp -f ${TEMPLATEDIR}/monitor/munin.conf $TMPMUNINCONF CreateBricks () { ### Create config for Bricks without separate drones. DRONELESS if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] then - Set_DMZ_Net + Set_DMZ_Net fi for BRICK in $(seq $BRICKCOUNT) do - if [ -z "$HOSTNAME_PREFIX" ] ; then + if [ -z "$HOSTNAME_PREFIX" ] ; then typeset BRICKHOSTNAME${BRICK}="brick0${BRICK}" - else - typeset BRICKHOSTNAME${BRICK}="${HOSTNAME_PREFIX}-brick0${BRICK}" - fi + else + typeset BRICKHOSTNAME${BRICK}="${HOSTNAME_PREFIX}-brick0${BRICK}" + fi echo >> "$NETCFGFILE" eval echo \$BRICKHOSTNAME${BRICK} >> "$NETCFGFILE" echo "Brick${BRICK} hostname set to: $(eval echo \$BRICKHOSTNAME${BRICK})" >> "$NETCFGFILE" typeset BRICKHOSTNAME${BRICK}_HEAD="$(eval echo \$BRICKHOSTNAME${BRICK}-head)" echo "Brick${BRICK} Head hostname set to: $(eval echo \$BRICKHOSTNAME${BRICK}_HEAD)" >> "$NETCFGFILE" - if [ "$GENERATE_BRICKS_IPS" = "n" ] - then - typeset BRICKHOSTNAME${BRICK}_HEAD_IP=$(eval echo "\$MANUAL_BRICK_IP_0${BRICK}") - else - typeset BRICKHOSTNAME${BRICK}_HEAD_IP="$PRIVATENET.${BRICK}0" - fi - echo "Brick${BRICK} Head IP Address set to: $(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)" >> "$NETCFGFILE" - [ "${BRICK}" = "1" ] && BRICK01_HEAD_IP="$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)" - eval echo -e "\\\treal=\$BRICKHOSTNAME${BRICK}_HEAD_IP:80 masq" >> "$LVSCONFIGFILE" - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK} - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/network - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/rsyslog.d - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/sites-available - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/sites-enabled - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/conf-available - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/mods-available - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-available - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-enabled - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/init.d - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/munin - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/var/run/evergreen - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/var/run/munin - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/offline - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/vandelay - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/locale/opac - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/web/reporter - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system/apache2.service.d - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/sudoers.d - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/usr/local/bin - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/netplan - - ### head gets exports - if [ "$ROBOTS_TXT" = "y" ] || [ "$ROBOTS_TXT" = "Y" ] ### Copy robots.txt if selected. - then - eval cp -f $TEMPLATEDIR/apache2/robots.txt ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/web - fi - eval cp -f $TEMPLATEDIR/eg_fstab_head ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc - eval cp -f ${CERT_DIR}/server.* ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl - eval cp -f ${CERT_DIR}/dhparams.pem ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl - - [ -e "${CERT_DIR}/ca.crt" ] && eval cp -f "${CERT_DIR}/ca.crt" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl - [ -e "${CERT_DIR}/dhparams.pem" ] && eval cp -f "${CERT_DIR}/dhparams.pem" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl - [ -e "${CUSTOMDIR}/zips.txt" ] && eval cp -f "${CUSTOMDIR}/zips.txt" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/zips.txt - eval ls "${CUSTOMDIR}/*.po" >/dev/null 2>&1 && eval cp -f "${CUSTOMDIR}/*.po" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/locale/opac - eval cp -f $TEMPLATEDIR/opensrf_core.xml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf - eval sed -i "s^UTILITY01_IP^$UTILITY01_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/eg_fstab_head - eval sed -i "s^UTILITY02_IP^$UTILITY02_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/eg_fstab_head - eval sed -i "s^UTILITY03_IP^$UTILITY03_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/eg_fstab_head - eval sed -i "s^REPORTER_OUTPUT_NFS_HOST_IP^$REPORTS_NFS_HOSTNAME_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/eg_fstab_head - eval sed -i "s^Brick_head_Fqdn^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD).$CLUSTERDOMAINNAME^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/opensrf_core.xml - #eval sed -i "s^OpenSRF_Password^$OPENSRF_PASSWORD^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/opensrf_core.xml - sed -i "s^OpenSRF_Password^$(echo $OPENSRF_PASSWORD | sed -e 's^&^\\\&^g' -e 's/\^/\\\^/g')^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/opensrf_core.xml - cp -f $TEMPLATEDIR/opensrf.xml/opensrf.xml-full $TMPFOLDER/opensrf.xml-head - eval sed -i "s^NODE_HOST_NAME^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD)^g" $TMPFOLDER/opensrf.xml-head - cat $TMPFOLDER/opensrf.xml-head >> $TMPOPENSRF_XML - - eval cp -f $TEMPLATEDIR/oils_web.xml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf - eval cp -f $TEMPLATEDIR/oils_brick.cfg-header ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf/.oils_brick.cfg - eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg - eval printf 'export\ DRONES\=\(' >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg - eval cp -f $TEMPLATEDIR/apache2/eg.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/sites-available - eval cp -f $TEMPLATEDIR/nginx/osrf-ws-http-proxy ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-available - #eval cp -f $TEMPLATEDIR/apache2/eg_vhost.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2 - # no longer configuring mpm_prefork in apache2.conf, has its own config file - #eval cp -f $TEMPLATEDIR/apache2/apache2.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2 - eval cp -f $TEMPLATEDIR/apache2/mpm_prefork.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/mods-available - eval cp -f $TEMPLATEDIR/apache2/mutex-file.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/conf-available - #eval cp -f $TEMPLATEDIR/apache2/eg_startup ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2 + if [ "$GENERATE_BRICKS_IPS" = "n" ] + then + typeset BRICKHOSTNAME${BRICK}_HEAD_IP=$(eval echo "\$MANUAL_BRICK_IP_0${BRICK}") + else + typeset BRICKHOSTNAME${BRICK}_HEAD_IP="$PRIVATENET.${BRICK}0" + fi + echo "Brick${BRICK} Head IP Address set to: $(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)" >> "$NETCFGFILE" + [ "${BRICK}" = "1" ] && BRICK01_HEAD_IP="$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)" + eval echo -e "\\\treal=\$BRICKHOSTNAME${BRICK}_HEAD_IP:80 masq" >> "$LVSCONFIGFILE" + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK} + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/network + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/rsyslog.d + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/sites-available + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/sites-enabled + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/conf-available + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/mods-available + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-available + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-enabled + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/init.d + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/munin + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/var/run/evergreen + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/var/run/munin + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/offline + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/vandelay + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/locale/opac + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/web/reporter + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system/apache2.service.d + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/sudoers.d + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/usr/local/bin + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/netplan + + if [ "$ROBOTS_TXT" = "y" ] || [ "$ROBOTS_TXT" = "Y" ] ### Copy robots.txt if selected. + then + eval cp -f $TEMPLATEDIR/apache2/robots.txt ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/web + fi + eval cp -f $TEMPLATEDIR/eg_fstab_head ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc + eval cp -f ${CERT_DIR}/server.* ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl + eval cp -f ${CERT_DIR}/dhparams.pem ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl + + [ -e "${CERT_DIR}/ca.crt" ] && eval cp -f "${CERT_DIR}/ca.crt" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl + [ -e "${CERT_DIR}/dhparams.pem" ] && eval cp -f "${CERT_DIR}/dhparams.pem" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl + [ -e "${CUSTOMDIR}/zips.txt" ] && eval cp -f "${CUSTOMDIR}/zips.txt" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/zips.txt + eval ls "${CUSTOMDIR}/*.po" >/dev/null 2>&1 && eval cp -f "${CUSTOMDIR}/*.po" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/locale/opac + eval cp -f $TEMPLATEDIR/opensrf_core.xml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf + eval sed -i "s^UTILITY01_IP^$UTILITY01_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/eg_fstab_head + eval sed -i "s^UTILITY02_IP^$UTILITY02_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/eg_fstab_head + eval sed -i "s^UTILITY03_IP^$UTILITY03_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/eg_fstab_head + eval sed -i "s^REPORTER_OUTPUT_NFS_HOST_IP^$REPORTS_NFS_HOSTNAME_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/eg_fstab_head + eval sed -i "s^Brick_head_Fqdn^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD).$CLUSTERDOMAINNAME^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/opensrf_core.xml + sed -i "s^OpenSRF_Password^$(echo $OPENSRF_PASSWORD | sed -e 's^&^\\\&^g' -e 's/\^/\\\^/g')^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/opensrf_core.xml + cp -f $TEMPLATEDIR/opensrf.xml/opensrf.xml-full $TMPFOLDER/opensrf.xml-head + eval sed -i "s^NODE_HOST_NAME^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD)^g" $TMPFOLDER/opensrf.xml-head + cat $TMPFOLDER/opensrf.xml-head >> $TMPOPENSRF_XML + + eval cp -f $TEMPLATEDIR/oils_web.xml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf + eval cp -f $TEMPLATEDIR/oils_brick.cfg-header ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf/.oils_brick.cfg + eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg + eval printf 'export\ DRONES\=\(' >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg + eval cp -f $TEMPLATEDIR/apache2/eg.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/sites-available + eval cp -f $TEMPLATEDIR/nginx/osrf-ws-http-proxy ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-available + + # set up eg_vhost.conf + if [[ "$USE_NOVELIST" == "y" || "$USE_NOVELIST" == "Y" ]]; then + eval sed -i "s^GENASYS_NOVELIST_PROFILE^$NOVELIST_PROFILE^" $TEMPLATEDIR/apache2/eg_vhost.conf + eval sed -i "s^GENASYS_NOVELIST_PASSWORD^$NOVELIST_PROFILE^" $TEMPLATEDIR/apache2/eg_vhost.conf + fi + + if [[ "$USE_SYNDETICS" == "y" || "$USE_SYNDETICS" == "Y" ]]; then + eval sed -i "s^GENASYS_SYNDETICS_USER_ID^$SYNDETICS_USER_ID^" $TEMPLATEDIR/apache2/eg_vhost.conf + fi + eval sed -i "s^MEMCACHE01_IP^$MEMCACHE01_IP^" $TEMPLATEDIR/apache2/eg_vhost.conf + eval cp -f $TEMPLATEDIR/apache2/eg_vhost.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2 + + # no longer configuring mpm_prefork in apache2.conf, has its own config file + eval cp -f $TEMPLATEDIR/apache2/mpm_prefork.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/mods-available + eval cp -f $TEMPLATEDIR/apache2/mutex-file.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/conf-available eval cd ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/sites-enabled && ln -s ../sites-available/eg.conf . && \ cd $WD - eval cd ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-enabled && ln -s ../sites-available/osrf-ws-http-proxy . && cd $WD + eval cd ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-enabled && ln -s ../sites-available/osrf-ws-http-proxy . && cd $WD eval cp -f $TEMPLATEDIR/interfaces ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/network - eval cp -f $TEMPLATEDIR/netplan/config.yaml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/netplan + eval cp -f $TEMPLATEDIR/netplan/config.yaml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/netplan eval cp -f $TMPFOLDER/ntp.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/ eval cp -f $TMPFOLDER/resolv.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/ - #sed -i "s^# OSRFTranslatorCacheServer 127.0.0.1:11211^OSRFTranslatorCacheServer $MEMCACHE01_IP:11211^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/apache2/eg_vhost.conf - [ "$CA_FILES_EXIST" = "y" ] && sed -i "s^#SSLCACertificateFile ssl/ca.crt^SSLCACertificateFile ssl/ca.crt^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/apache2/sites-available/eg.conf + #sed -i "s^# OSRFTranslatorCacheServer 127.0.0.1:11211^OSRFTranslatorCacheServer $MEMCACHE01_IP:11211^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/apache2/eg_vhost.conf + [ "$CA_FILES_EXIST" = "y" ] && sed -i "s^#SSLCACertificateFile ssl/ca.crt^SSLCACertificateFile ssl/ca.crt^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/apache2/sites-available/eg.conf eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces - eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml + eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml eval sed -i "s^Priv_NET^$PRIVATENET^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces - eval sed -i "s^Priv_NET^$PRIVATENET^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml - eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces - eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml - eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces - eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml - eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces - eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml - eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces - eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml + eval sed -i "s^Priv_NET^$PRIVATENET^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml + eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces + eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml + eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces + eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml + eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces + eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml + eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces + eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml #eval cp -f $TEMPLATEDIR/init/eg_opensrf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/init.d/opensrf eval cp -f $TEMPLATEDIR/setup-head.sh ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head - eval cp -f $TEMPLATEDIR/setup-vars ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-vars - eval cp -f "$TEMPLATEDIR/setup-functions" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-functions" + eval cp -f $TEMPLATEDIR/setup-vars ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-vars + eval cp -f "$TEMPLATEDIR/setup-functions" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-functions" eval sed -i "s^head_file^$(eval echo \$BRICKHOSTNAME${BRICK}-head)^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-head.sh - eval sed -i "s^_EGVER^${VERSION_}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-head.sh - eval sed -i "s^_GENVER^${VERSION_}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-vars - eval sed -i "s^_EGVER^${EG_VERSION}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-vars - eval sed -i "s^Brick01_Head_IP^$BRICK01_HEAD_IP^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-head.sh + eval sed -i "s^_EGVER^${VERSION_}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-head.sh + eval sed -i "s^_GENVER^${VERSION_}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-vars + eval sed -i "s^_EGVER^${EG_VERSION}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-vars + eval sed -i "s^Brick01_Head_IP^$BRICK01_HEAD_IP^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-head.sh eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-head.sh - #TODO verify the outdir string if possible to simply - eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/setup-head.sh - eval sed -i "s^My_CIDR^$CLUSTER_CIDR^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/setup-head.sh - #TODO verify the outdir string if possible to simply ^^ + #TODO verify the outdir string if possible to simply + eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/setup-head.sh + eval sed -i "s^My_CIDR^$CLUSTER_CIDR^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/setup-head.sh + #TODO verify the outdir string if possible to simply ^^ eval cp -f $TEMPLATEDIR/apt/head_apt.list ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/\$BRICKHOSTNAME${BRICK}-head_apt.list eval cp -f $TMPFOLDER/60-evergreen-ils.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/rsyslog.d - eval cp -f $TEMPLATEDIR/rsyslog/50-default.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/rsyslog.d - eval cp -f $TEMPLATEDIR/systemd/autogen.service ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system - eval cp -f $TEMPLATEDIR/systemd/apache2.service.d/10-partof_opensrf_service.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system/apache2.service.d - eval cp -f $TEMPLATEDIR/systemd/opensrf.sudoers ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/sudoers.d/opensrf - eval cp -f $TEMPLATEDIR/monitor/check_osrf.sudoers ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/sudoers.d/nagios - eval cp -fP $TEMPLATEDIR/websocketd/websocket* ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/usr/local/bin - eval cp -f $TEMPLATEDIR/systemd/websocketd-osrf.service ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system - #eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/60-evergreen-ils.conf - + eval cp -f $TEMPLATEDIR/rsyslog/50-default.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/rsyslog.d + eval cp -f $TEMPLATEDIR/systemd/autogen.service ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system + eval cp -f $TEMPLATEDIR/systemd/apache2.service.d/10-partof_opensrf_service.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system/apache2.service.d + eval cp -f $TEMPLATEDIR/systemd/opensrf.sudoers ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/sudoers.d/opensrf + eval cp -f $TEMPLATEDIR/monitor/check_osrf.sudoers ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/sudoers.d/nagios + eval cp -fP $TEMPLATEDIR/websocketd/websocket* ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/usr/local/bin + eval cp -f $TEMPLATEDIR/systemd/websocketd-osrf.service ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system + #eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/60-evergreen-ils.conf + eval echo "\$BRICKHOSTNAME${BRICK}-head" > ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/hostname eval echo "\$BRICKHOSTNAME${BRICK}-head" >> $TMPOSRFNODES eval echo "\$BRICKHOSTNAME${BRICK}_HEAD_IP \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME} public.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME} private.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME} \$BRICKHOSTNAME${BRICK}-head" >> $TMPHOSTS - eval printf "\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE - eval printf "public.\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE - eval printf "private.\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE - if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] - then - eval printf "${BRICK}0\\\tIN\\\tPTR\\\t\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE_DMZ - eval printf "${BRICK}0\\\tIN\\\tPTR\\\tpublic.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE_DMZ - eval printf "${BRICK}0\\\tIN\\\tPTR\\\tprivate.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE_DMZ - else - eval printf "${BRICK}0\\\tIN\\\tPTR\\\t\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE - eval printf "${BRICK}0\\\tIN\\\tPTR\\\tpublic.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE - eval printf "${BRICK}0\\\tIN\\\tPTR\\\tprivate.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE - fi - eval echo "/openils/var/data/offline \$BRICKHOSTNAME${BRICK}_HEAD_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports - eval echo "/openils/var/data/vandelay \$BRICKHOSTNAME${BRICK}_HEAD_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports - eval echo "/storage/reports-output \$BRICKHOSTNAME${BRICK}_HEAD_IP\(ro,sync,no_subtree_check\)" >> $TMPFOLDER/exports_reporter + eval printf "\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE + eval printf "public.\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE + eval printf "private.\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE + if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] + then + eval printf "${BRICK}0\\\tIN\\\tPTR\\\t\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE_DMZ + eval printf "${BRICK}0\\\tIN\\\tPTR\\\tpublic.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE_DMZ + eval printf "${BRICK}0\\\tIN\\\tPTR\\\tprivate.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE_DMZ + else + eval printf "${BRICK}0\\\tIN\\\tPTR\\\t\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE + eval printf "${BRICK}0\\\tIN\\\tPTR\\\tpublic.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE + eval printf "${BRICK}0\\\tIN\\\tPTR\\\tprivate.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE + fi + eval echo "/openils/var/data/offline \$BRICKHOSTNAME${BRICK}_HEAD_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports + eval echo "/openils/var/data/vandelay \$BRICKHOSTNAME${BRICK}_HEAD_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports + eval echo "/storage/reports-output \$BRICKHOSTNAME${BRICK}_HEAD_IP\(ro,sync,no_subtree_check\)" >> $TMPFOLDER/exports_reporter printf ")\n" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg sed -i 's^ )^)^g' ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg eval cat $TEMPLATEDIR/oils_brick.cfg-footer >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg - BRICK_HEAD_LIST="$BRICK_HEAD_LIST$(eval printf "\$BRICKHOSTNAME${BRICK}-head\ ")" - ### Monitoring - printf 'define host {\n' >>$TMPNAGIHOSTS;eval printf "\\\thost_name\\\t\$BRICKHOSTNAME${BRICK}-head\\\n" >>$TMPNAGIHOSTS - eval printf "\\\talias\\\t\\\t\$BRICKHOSTNAME${BRICK}-head\\\n" >>$TMPNAGIHOSTS - eval printf "\\\taddress\\\t\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >>$TMPNAGIHOSTS - printf '\tuse\t\tgeneric-host\n}\n' >>$TMPNAGIHOSTS - - ### Build munin-node.conf file. + BRICK_HEAD_LIST="$BRICK_HEAD_LIST$(eval printf "\$BRICKHOSTNAME${BRICK}-head\ ")" + ### Monitoring + printf 'define host {\n' >>$TMPNAGIHOSTS;eval printf "\\\thost_name\\\t\$BRICKHOSTNAME${BRICK}-head\\\n" >>$TMPNAGIHOSTS + eval printf "\\\talias\\\t\\\t\$BRICKHOSTNAME${BRICK}-head\\\n" >>$TMPNAGIHOSTS + eval printf "\\\taddress\\\t\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >>$TMPNAGIHOSTS + printf '\tuse\t\tgeneric-host\n}\n' >>$TMPNAGIHOSTS + + ### Build munin-node.conf file. #eval echo "host_name \$BRICKHOSTNAME${BRICK}-head" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf - cp -f $TEMPLATEDIR/monitor/munin-node.conf ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf + cp -f $TEMPLATEDIR/monitor/munin-node.conf ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf eval sed -i "s^MONITORED_NODENAME.CLUSTER_DOMAIN_NAME^$(eval echo \$BRICKHOSTNAME${BRICK}-head.$CLUSTERDOMAINNAME)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf echo "allow $MONITOR01_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf echo "allow $MONITOR02_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf - #eval echo "host \$BRICKHOSTNAME${BRICK}_HEAD_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf + #eval echo "host \$BRICKHOSTNAME${BRICK}_HEAD_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf ### Build munin.conf file. eval echo -e "[${CLUSTERDOMAINNAME}\;\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}]" >>$TMPMUNINCONF #eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}_HEAD_IP" >>$TMPMUNINCONF - eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF + eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF #eval echo -e "\\\thost_name \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF echo >>$TMPMUNINCONF @@ -2105,145 +2113,145 @@ for BRICK in $(seq $BRICKCOUNT) do eval cat $TMPHOSTS >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/hosts eval sed -i "s^thishost^$(eval echo \$BRICKHOSTNAME${BRICK})-head^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/hosts - [ -z "$HOSTNAME_PREFIX" ] || sed -i "s^${HOSTNAME_PREFIX}-${HOSTNAME_PREFIX}^${HOSTNAME_PREFIX}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/hosts + [ -z "$HOSTNAME_PREFIX" ] || sed -i "s^${HOSTNAME_PREFIX}-${HOSTNAME_PREFIX}^${HOSTNAME_PREFIX}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/hosts done } CreateBricksAndDrones () { ### Create config for bricks with seperate drones if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] then - Set_DMZ_Net + Set_DMZ_Net fi for BRICK in $(seq $BRICKCOUNT) - do - if [ -z "$HOSTNAME_PREFIX" ] ; then + do + if [ -z "$HOSTNAME_PREFIX" ] ; then typeset BRICKHOSTNAME${BRICK}="brick0${BRICK}" else typeset BRICKHOSTNAME${BRICK}="${HOSTNAME_PREFIX}-brick0${BRICK}" fi - echo >> "$NETCFGFILE" - eval echo \$BRICKHOSTNAME${BRICK} >> "$NETCFGFILE" - echo "Brick${BRICK} hostname set to: $(eval echo \$BRICKHOSTNAME${BRICK})" >> "$NETCFGFILE" - typeset BRICKHOSTNAME${BRICK}_HEAD="$(eval echo \$BRICKHOSTNAME${BRICK}-head)" - echo "Brick${BRICK} Head hostname set to: $(eval echo \$BRICKHOSTNAME${BRICK}_HEAD)" >> "$NETCFGFILE" - typeset BRICKHOSTNAME${BRICK}_HEAD_IP="$PRIVATENET.${BRICK}0" - echo "Brick${BRICK} Head IP Address set to: $(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)" >> "$NETCFGFILE" - [ "${BRICK}" = "1" ] && BRICK01_HEAD_IP="$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)" - eval echo -e "\\\treal=\$BRICKHOSTNAME${BRICK}_HEAD_IP:80 masq" >> "$LVSCONFIGFILE" - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK} - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/network - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/rsyslog.d - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/sites-available - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/sites-enabled - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/conf-available - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/mods-available - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-available - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-enabled - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/init.d - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/munin - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/var/run/evergreen - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/var/run/munin - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/offline - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/vandelay - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/locale/opac - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/web/reporter - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system/apache2.service.d - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/sudoers.d - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/usr/local/bin - eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/netplan - ### head gets exports - if [ "$ROBOTS_TXT" = "y" ] || [ "$ROBOTS_TXT" = "Y" ] ### Copy robots.txt if selected. + echo >> "$NETCFGFILE" + eval echo \$BRICKHOSTNAME${BRICK} >> "$NETCFGFILE" + echo "Brick${BRICK} hostname set to: $(eval echo \$BRICKHOSTNAME${BRICK})" >> "$NETCFGFILE" + typeset BRICKHOSTNAME${BRICK}_HEAD="$(eval echo \$BRICKHOSTNAME${BRICK}-head)" + echo "Brick${BRICK} Head hostname set to: $(eval echo \$BRICKHOSTNAME${BRICK}_HEAD)" >> "$NETCFGFILE" + typeset BRICKHOSTNAME${BRICK}_HEAD_IP="$PRIVATENET.${BRICK}0" + echo "Brick${BRICK} Head IP Address set to: $(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)" >> "$NETCFGFILE" + [ "${BRICK}" = "1" ] && BRICK01_HEAD_IP="$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)" + eval echo -e "\\\treal=\$BRICKHOSTNAME${BRICK}_HEAD_IP:80 masq" >> "$LVSCONFIGFILE" + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK} + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/network + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/rsyslog.d + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/sites-available + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/sites-enabled + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/conf-available + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/mods-available + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-available + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-enabled + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/init.d + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/munin + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/var/run/evergreen + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/var/run/munin + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/offline + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/vandelay + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/locale/opac + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/web/reporter + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system/apache2.service.d + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/sudoers.d + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/usr/local/bin + eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/netplan + ### head gets exports + if [ "$ROBOTS_TXT" = "y" ] || [ "$ROBOTS_TXT" = "Y" ] ### Copy robots.txt if selected. then eval cp -f $TEMPLATEDIR/apache2/robots.txt ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/web fi - eval cp -f $TEMPLATEDIR/eg_fstab_head ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc - eval cp -f ${CERT_DIR}/server.* ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl - [ -e "${CERT_DIR}/ca.crt" ] && eval cp -f "${CERT_DIR}/ca.crt" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl - [ -e "${CERT_DIR}/dhparams.pem" ] && eval cp -f "${CERT_DIR}/dhparams.pem" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl - [ -e "${CUSTOMDIR}/zips.txt" ] && eval cp -f "${CUSTOMDIR}/zips.txt" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/zips.txt - eval ls "${CUSTOMDIR}/*.po" >/dev/null 2>&1 && eval cp -f "${CUSTOMDIR}/*.po" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/locale/opac - eval sed -i "s^UTILITY01_IP^$UTILITY01_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/eg_fstab_head - eval sed -i "s^UTILITY02_IP^$UTILITY02_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/eg_fstab_head - eval sed -i "s^UTILITY03_IP^$UTILITY03_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/eg_fstab_head + eval cp -f $TEMPLATEDIR/eg_fstab_head ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc + eval cp -f ${CERT_DIR}/server.* ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl + [ -e "${CERT_DIR}/ca.crt" ] && eval cp -f "${CERT_DIR}/ca.crt" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl + [ -e "${CERT_DIR}/dhparams.pem" ] && eval cp -f "${CERT_DIR}/dhparams.pem" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/ssl + [ -e "${CUSTOMDIR}/zips.txt" ] && eval cp -f "${CUSTOMDIR}/zips.txt" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/zips.txt + eval ls "${CUSTOMDIR}/*.po" >/dev/null 2>&1 && eval cp -f "${CUSTOMDIR}/*.po" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/var/data/locale/opac + eval sed -i "s^UTILITY01_IP^$UTILITY01_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/eg_fstab_head + eval sed -i "s^UTILITY02_IP^$UTILITY02_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/eg_fstab_head + eval sed -i "s^UTILITY03_IP^$UTILITY03_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/eg_fstab_head eval sed -i "s^REPORTER_OUTPUT_NFS_HOST_IP^$REPORTS_NFS_HOSTNAME_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/eg_fstab_head - eval cp -f $TEMPLATEDIR/opensrf_core.xml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf - eval sed -i "s^Brick_head_Fqdn^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD).$CLUSTERDOMAINNAME^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/opensrf_core.xml - #eval sed -i "s^OpenSRF_Password^$OPENSRF_PASSWORD^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/opensrf_core.xml - sed -i "s^OpenSRF_Password^$(echo $OPENSRF_PASSWORD | sed -e 's^&^\\\&^g' -e 's/\^/\\\^/g')^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/opensrf_core.xml - cp -f $TEMPLATEDIR/opensrf.xml/opensrf.xml-head $TMPFOLDER/opensrf.xml-head - eval sed -i "s^NODE_HOST_NAME^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD)^g" $TMPFOLDER/opensrf.xml-head - cat $TMPFOLDER/opensrf.xml-head >> $TMPOPENSRF_XML - #;eval cp -f $TEMPLATEDIR/opensrf.xml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf - - eval cp -f $TEMPLATEDIR/oils_web.xml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf - eval cp -f $TEMPLATEDIR/oils_brick.cfg-header ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf/.oils_brick.cfg - eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg - eval printf 'export\ DRONES\=\(' >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg - eval cp -f $TEMPLATEDIR/apache2/eg.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/sites-available - eval cp -f $TEMPLATEDIR/nginx/osrf-ws-http-proxy ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-available - #eval cp -f $TEMPLATEDIR/apache2/eg_vhost.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2 - # no longer configuring mpm_prefork in apache2.conf, has its own config file - #eval cp -f $TEMPLATEDIR/apache2/apache2.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2 - eval cp -f $TEMPLATEDIR/apache2/mpm_prefork.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/mods-available - eval cp -f $TEMPLATEDIR/apache2/mutex-file.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/conf-available - #eval cp -f $TEMPLATEDIR/apache2/eg_startup ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2 - eval cd ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/sites-enabled && ln -s ../sites-available/eg.conf . && \ - cd $WD - eval cd ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-enabled && ln -s ../sites-available/osrf-ws-http-proxy . && cd $WD - eval cp -f $TEMPLATEDIR/interfaces ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/network - eval cp -f $TEMPLATEDIR/netplan/config.yaml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/netplan - eval cp -f $TMPFOLDER/ntp.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/ - eval cp -f $TMPFOLDER/resolv.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/ - #sed -i "s^# OSRFTranslatorCacheServer 127.0.0.1:11211^OSRFTranslatorCacheServer $MEMCACHE01_IP:11211^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/apache2/eg_vhost.conf - [ "$CA_FILES_EXIST" = "y" ] && sed -i "s^#SSLCACertificateFile ssl/ca.crt^SSLCACertificateFile ssl/ca.crt^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/apache2/sites-available/eg.conf - eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces - eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml - eval sed -i "s^Priv_NET^$PRIVATENET^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces - eval sed -i "s^Priv_NET^$PRIVATENET^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml - eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces - eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml - eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces - eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml - eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces - eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml - eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces - eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml - eval cp -f $TEMPLATEDIR/exports ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/ - eval echo "/openils/var/data/offline \$BRICKHOSTNAME${BRICK}_HEAD_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports - eval echo "/openils/var/data/vandelay \$BRICKHOSTNAME${BRICK}_HEAD_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports - eval echo "/storage/reports-output \$BRICKHOSTNAME${BRICK}_HEAD_IP\(ro,sync,no_subtree_check\)" >> $TMPFOLDER/exports_reporter - # eval cp -f $TEMPLATEDIR/init/eg_opensrf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/init.d/opensrf - eval cp -f $TEMPLATEDIR/setup-head.sh ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head - eval cp -f $TEMPLATEDIR/setup-vars ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-vars - eval cp -f "$TEMPLATEDIR/setup-functions" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-functions" - eval sed -i "s^_EGVER^${VERSION_}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-head.sh - eval sed -i "s^_GENVER^${VERSION_}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-vars - eval sed -i "s^_EGVER^${EG_VERSION}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-vars - eval sed -i "s^head_file^$(eval echo \$BRICKHOSTNAME${BRICK}-head)^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-head.sh - eval sed -i "s^Brick01_Head_IP^$BRICK01_HEAD_IP^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-head.sh - eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-head.sh - eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/setup-head.sh + eval cp -f $TEMPLATEDIR/opensrf_core.xml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf + eval sed -i "s^Brick_head_Fqdn^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD).$CLUSTERDOMAINNAME^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/opensrf_core.xml + #eval sed -i "s^OpenSRF_Password^$OPENSRF_PASSWORD^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/opensrf_core.xml + sed -i "s^OpenSRF_Password^$(echo $OPENSRF_PASSWORD | sed -e 's^&^\\\&^g' -e 's/\^/\\\^/g')^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/opensrf_core.xml + cp -f $TEMPLATEDIR/opensrf.xml/opensrf.xml-head $TMPFOLDER/opensrf.xml-head + eval sed -i "s^NODE_HOST_NAME^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD)^g" $TMPFOLDER/opensrf.xml-head + cat $TMPFOLDER/opensrf.xml-head >> $TMPOPENSRF_XML + #;eval cp -f $TEMPLATEDIR/opensrf.xml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf + + eval cp -f $TEMPLATEDIR/oils_web.xml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf + eval cp -f $TEMPLATEDIR/oils_brick.cfg-header ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/openils/conf/.oils_brick.cfg + eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg + eval printf 'export\ DRONES\=\(' >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg + eval cp -f $TEMPLATEDIR/apache2/eg.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/sites-available + eval cp -f $TEMPLATEDIR/nginx/osrf-ws-http-proxy ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-available + #eval cp -f $TEMPLATEDIR/apache2/eg_vhost.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2 + # no longer configuring mpm_prefork in apache2.conf, has its own config file + #eval cp -f $TEMPLATEDIR/apache2/apache2.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2 + eval cp -f $TEMPLATEDIR/apache2/mpm_prefork.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/mods-available + eval cp -f $TEMPLATEDIR/apache2/mutex-file.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/conf-available + #eval cp -f $TEMPLATEDIR/apache2/eg_startup ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2 + eval cd ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/apache2/sites-enabled && ln -s ../sites-available/eg.conf . && \ + cd $WD + eval cd ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-enabled && ln -s ../sites-available/osrf-ws-http-proxy . && cd $WD + eval cp -f $TEMPLATEDIR/interfaces ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/network + eval cp -f $TEMPLATEDIR/netplan/config.yaml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/netplan + eval cp -f $TMPFOLDER/ntp.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/ + eval cp -f $TMPFOLDER/resolv.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/ + #sed -i "s^# OSRFTranslatorCacheServer 127.0.0.1:11211^OSRFTranslatorCacheServer $MEMCACHE01_IP:11211^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/apache2/eg_vhost.conf + [ "$CA_FILES_EXIST" = "y" ] && sed -i "s^#SSLCACertificateFile ssl/ca.crt^SSLCACertificateFile ssl/ca.crt^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/apache2/sites-available/eg.conf + eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces + eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml + eval sed -i "s^Priv_NET^$PRIVATENET^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces + eval sed -i "s^Priv_NET^$PRIVATENET^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml + eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces + eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml + eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces + eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml + eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces + eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml + eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces + eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml + eval cp -f $TEMPLATEDIR/exports ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/ + eval echo "/openils/var/data/offline \$BRICKHOSTNAME${BRICK}_HEAD_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports + eval echo "/openils/var/data/vandelay \$BRICKHOSTNAME${BRICK}_HEAD_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports + eval echo "/storage/reports-output \$BRICKHOSTNAME${BRICK}_HEAD_IP\(ro,sync,no_subtree_check\)" >> $TMPFOLDER/exports_reporter + # eval cp -f $TEMPLATEDIR/init/eg_opensrf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/init.d/opensrf + eval cp -f $TEMPLATEDIR/setup-head.sh ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head + eval cp -f $TEMPLATEDIR/setup-vars ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-vars + eval cp -f "$TEMPLATEDIR/setup-functions" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-functions" + eval sed -i "s^_EGVER^${VERSION_}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-head.sh + eval sed -i "s^_GENVER^${VERSION_}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-vars + eval sed -i "s^_EGVER^${EG_VERSION}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-vars + eval sed -i "s^head_file^$(eval echo \$BRICKHOSTNAME${BRICK}-head)^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-head.sh + eval sed -i "s^Brick01_Head_IP^$BRICK01_HEAD_IP^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-head.sh + eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-head.sh + eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/setup-head.sh eval sed -i "s^My_CIDR^$CLUSTER_CIDR^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/setup-head.sh - eval cp -f $TEMPLATEDIR/apt/head_apt.list ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/\$BRICKHOSTNAME${BRICK}-head_apt.list - eval cp -f $TMPFOLDER/60-evergreen-ils.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/rsyslog.d - eval cp -f $TEMPLATEDIR/rsyslog/50-default.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/rsyslog.d - eval cp -f $TEMPLATEDIR/systemd/autogen.service ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system - eval cp -f $TEMPLATEDIR/systemd/apache2.service.d/10-partof_opensrf_service.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/apache2.service.d - eval cp -f $TEMPLATEDIR/systemd/opensrf.sudoers ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/sudoers.d/opensrf - eval cp -f $TEMPLATEDIR/monitor/check_osrf.sudoers ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/sudoers.d/nagios - eval cp -fP $TEMPLATEDIR/websocketd/websocket* ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/usr/local/bin - eval cp -f $TEMPLATEDIR/systemd/websocketd-osrf.service ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system - #eval cp -f /tmp/rsyslog.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/ - eval echo "\$BRICKHOSTNAME${BRICK}-head" > ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/hostname - eval echo "\$BRICKHOSTNAME${BRICK}-head" >> $TMPOSRFNODES - eval echo "\$BRICKHOSTNAME${BRICK}_HEAD_IP \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME} public.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME} private.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME} \$BRICKHOSTNAME${BRICK}-head" >> $TMPHOSTS - eval printf "\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE + eval cp -f $TEMPLATEDIR/apt/head_apt.list ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/\$BRICKHOSTNAME${BRICK}-head_apt.list + eval cp -f $TMPFOLDER/60-evergreen-ils.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/rsyslog.d + eval cp -f $TEMPLATEDIR/rsyslog/50-default.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/rsyslog.d + eval cp -f $TEMPLATEDIR/systemd/autogen.service ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system + eval cp -f $TEMPLATEDIR/systemd/apache2.service.d/10-partof_opensrf_service.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/apache2.service.d + eval cp -f $TEMPLATEDIR/systemd/opensrf.sudoers ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/sudoers.d/opensrf + eval cp -f $TEMPLATEDIR/monitor/check_osrf.sudoers ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/sudoers.d/nagios + eval cp -fP $TEMPLATEDIR/websocketd/websocket* ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/usr/local/bin + eval cp -f $TEMPLATEDIR/systemd/websocketd-osrf.service ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system + #eval cp -f /tmp/rsyslog.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/ + eval echo "\$BRICKHOSTNAME${BRICK}-head" > ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/hostname + eval echo "\$BRICKHOSTNAME${BRICK}-head" >> $TMPOSRFNODES + eval echo "\$BRICKHOSTNAME${BRICK}_HEAD_IP \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME} public.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME} private.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME} \$BRICKHOSTNAME${BRICK}-head" >> $TMPHOSTS + eval printf "\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE eval printf "public.\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE eval printf "private.\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE - if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] + if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] then eval printf "${BRICK}0\\\tIN\\\tPTR\\\t\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE_DMZ eval printf "${BRICK}0\\\tIN\\\tPTR\\\tpublic.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE_DMZ @@ -2253,144 +2261,144 @@ for BRICK in $(seq $BRICKCOUNT) eval printf "${BRICK}0\\\tIN\\\tPTR\\\tpublic.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE eval printf "${BRICK}0\\\tIN\\\tPTR\\\tprivate.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE fi - BRICK_HEAD_LIST="$BRICK_HEAD_LIST$(eval printf "\$BRICKHOSTNAME${BRICK}-head\ ")" - ### Monitoring + BRICK_HEAD_LIST="$BRICK_HEAD_LIST$(eval printf "\$BRICKHOSTNAME${BRICK}-head\ ")" + ### Monitoring printf 'define host {\n' >>$TMPNAGIHOSTS;eval printf "\\\thost_name\\\t\$BRICKHOSTNAME${BRICK}-head\\\n" >>$TMPNAGIHOSTS eval printf "\\\talias\\\t\\\t\$BRICKHOSTNAME${BRICK}-head\\\n" >>$TMPNAGIHOSTS eval printf "\\\taddress\\\t\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >>$TMPNAGIHOSTS printf '\tuse\t\tgeneric-host\n}\n' >>$TMPNAGIHOSTS - - ### Build munin-node.conf file. + + ### Build munin-node.conf file. #eval echo "host_name \$BRICKHOSTNAME${BRICK}-head" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf - cp -f $TEMPLATEDIR/monitor/munin-node.conf ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf + cp -f $TEMPLATEDIR/monitor/munin-node.conf ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf eval sed -i "s^MONITORED_NODENAME.CLUSTER_DOMAIN_NAME^$(eval echo \$BRICKHOSTNAME${BRICK}-head.$CLUSTERDOMAINNAME)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf echo "allow $MONITOR01_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf echo "allow $MONITOR02_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf #eval echo "host \$BRICKHOSTNAME${BRICK}_HEAD_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf ### Build munin.conf file. - eval echo -e "[${CLUSTERDOMAINNAME}\;\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}]" >>$TMPMUNINCONF + eval echo -e "[${CLUSTERDOMAINNAME}\;\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}]" >>$TMPMUNINCONF #eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}_HEAD_IP" >>$TMPMUNINCONF - eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF - #eval echo -e "\\\thost_name \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF + eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF + #eval echo -e "\\\thost_name \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF echo >>$TMPMUNINCONF - for DRONE in $(seq $DRONECOUNT) - do - typeset TMPBRICKDRONES="$(eval echo \$BRICKHOSTNAME${BRICK}-head)_drones.txt" - #if [ -z "$HOSTNAME_PREFIX" ] ; then - # typeset BRICKHOSTNAME${BRICK}_DRONE${DRONE}="$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})" - # echo "Brick${BRICK} Drone${DRONE} hostname set to: $(eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}")" >> "$NETCFGFILE" + for DRONE in $(seq $DRONECOUNT) + do + typeset TMPBRICKDRONES="$(eval echo \$BRICKHOSTNAME${BRICK}-head)_drones.txt" + #if [ -z "$HOSTNAME_PREFIX" ] ; then + # typeset BRICKHOSTNAME${BRICK}_DRONE${DRONE}="$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})" + # echo "Brick${BRICK} Drone${DRONE} hostname set to: $(eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}")" >> "$NETCFGFILE" #else - # typeset BRICKHOSTNAME${BRICK}_DRONE${DRONE}="$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})" - # echo "Brick${BRICK} Drone${DRONE} hostname set to: $(eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}")" >> "$NETCFGFILE" - #fi + # typeset BRICKHOSTNAME${BRICK}_DRONE${DRONE}="$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})" + # echo "Brick${BRICK} Drone${DRONE} hostname set to: $(eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}")" >> "$NETCFGFILE" + #fi - typeset BRICKHOSTNAME${BRICK}_DRONE${DRONE}="$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})" - echo "Brick${BRICK} Drone${DRONE} hostname set to: $(eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}")" >> "$NETCFGFILE" - typeset BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP="$PRIVATENET.${BRICK}${DRONE}" + typeset BRICKHOSTNAME${BRICK}_DRONE${DRONE}="$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})" + echo "Brick${BRICK} Drone${DRONE} hostname set to: $(eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}")" >> "$NETCFGFILE" + typeset BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP="$PRIVATENET.${BRICK}${DRONE}" echo "Brick${BRICK} Drone${DRONE} IP Address set to: $(eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP")" >> "$NETCFGFILE" - eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/openils/conf" - eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc" - eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network" - eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/rsyslog.d" - eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/init.d" - eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/munin" - eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/var/run/evergreen" - eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/var/run/munin" - eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan" - eval cp -f $TEMPLATEDIR/opensrf_core.xml "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/openils/conf" - eval sed -i "s^Brick_head_Fqdn^$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE}).$CLUSTERDOMAINNAME^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/openils/conf/opensrf_core.xml" - #eval sed -i "s^OpenSRF_Password^$OPENSRF_PASSWORD^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/openils/conf/opensrf_core.xml" - eval sed -i "s^OpenSRF_Password^$(echo $OPENSRF_PASSWORD | sed -e 's^&^\\\&^g' -e 's/\^/\\\^/g')^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/openils/conf/opensrf_core.xml" - ### drone gets fstab - eval cp -f $TEMPLATEDIR/interfaces "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network" - eval cp -f $TEMPLATEDIR/netplan/config.yaml "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan" - eval cp -f $TMPFOLDER/ntp.conf "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc" - eval cp -f $TMPFOLDER/resolv.conf "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc" - eval cp -f $TEMPLATEDIR/eg_fstab_drone "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc" - #eval cp -f $TEMPLATEDIR/init/eg_opensrf "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/init.d/opensrf" - eval cp -f $TEMPLATEDIR/setup-drone.sh "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}" - eval cp -f $TEMPLATEDIR/setup-vars "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/setup-vars" - eval cp -f "$TEMPLATEDIR/setup-functions" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/setup-functions" - eval cp -f $TEMPLATEDIR/apt/drone_apt.list "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}_apt.list" - eval cp -f $TMPFOLDER/60-evergreen-ils.conf "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/rsyslog.d" - eval cp -f $TEMPLATEDIR/rsyslog/50-default.conf "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/rsyslog.d" - #eval cp -f /tmp/rsyslog.conf "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc" - eval sed -i "s^drone_file^$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/setup-drone.sh" - eval sed -i "s^_EGVER^${EG_VERSION}^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/setup-drone.sh" - eval sed -i "s^_GENVER^${VERSION_}^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/setup-vars" - eval sed -i "s^_EGVER^${EG_VERSION}^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/setup-vars" - eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/setup-drone.sh" - eval sed -i "s^HEAD_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/eg_fstab_drone" - eval sed -i "s^UTILITY01_IP^$UTILITY01_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/eg_fstab_drone" - eval sed -i "s^UTILITY02_IP^$UTILITY02_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/eg_fstab_drone" - eval sed -i "s^UTILITY03_IP^$UTILITY03_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/eg_fstab_drone" - eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP)^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces" - eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP)^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml" - eval sed -i "s^Priv_NET^$PRIVATENET^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces" - eval sed -i "s^Priv_NET^$PRIVATENET^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml" - eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces" - eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml" - eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces" - eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml" - eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces" - eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml" - eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces" - eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml" - #eval sed -i "s^DRONE_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/exports - eval echo "/openils \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP\(ro,sync,no_subtree_check\)" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/exports - printf '\"' >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg - eval printf \"\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP\" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg - printf '\" ' >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg - eval echo "/openils/var/data/offline \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports - eval echo "/openils/var/data/vandelay \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports - eval echo "/openils/var/data/vandelay \$BRICKHOSTNAME${BRICK}_HEAD_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports - - eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}" > ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})/etc/hostname - eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/$TMPBRICKDRONES - eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}" >> $TMPOSRFNODES - cp -f $TEMPLATEDIR/opensrf.xml/opensrf.xml-drone $TMPFOLDER/opensrf.xml-drone - eval sed -i "s^NODE_HOST_NAME^$(eval echo \$BRICKHOSTNAME${BRICK}_DRONE${DRONE})^g" $TMPFOLDER/opensrf.xml-drone - cat $TMPFOLDER/opensrf.xml-drone >> $TMPOPENSRF_XML - ### eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}" >> $TMPBRICKDRONES - eval echo -e "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}.${CLUSTERDOMAINNAME} \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}" \ - >> $TMPHOSTS - eval printf "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}\\\tA\\\t\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP\\\n" >> $TMPZONEFILE - if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] - then - eval printf "${BRICK}${DRONE}\\\tIN\\\tPTR\\\t\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE_DMZ - else - eval printf "${BRICK}${DRONE}\\\tIN\\\tPTR\\\t\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE - fi - DRONE_LIST="$DRONE_LIST$(eval printf "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}\ ")" - ### Monitoring - printf 'define host {\n' >>$TMPNAGIHOSTS;eval printf "\\\thost_name\\\t\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}\\\n" >>$TMPNAGIHOSTS - eval printf "\\\talias\\\t\\\t\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}\\\n" >>$TMPNAGIHOSTS - eval printf "\\\taddress\\\t\\\t\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP\\\n" >>$TMPNAGIHOSTS - printf '\tuse\t\tgeneric-host\n}\n' >>$TMPNAGIHOSTS - - ### Build munin-node.conf file. + eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/openils/conf" + eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc" + eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network" + eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/rsyslog.d" + eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/init.d" + eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/munin" + eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/var/run/evergreen" + eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/var/run/munin" + eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan" + eval cp -f $TEMPLATEDIR/opensrf_core.xml "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/openils/conf" + eval sed -i "s^Brick_head_Fqdn^$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE}).$CLUSTERDOMAINNAME^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/openils/conf/opensrf_core.xml" + #eval sed -i "s^OpenSRF_Password^$OPENSRF_PASSWORD^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/openils/conf/opensrf_core.xml" + eval sed -i "s^OpenSRF_Password^$(echo $OPENSRF_PASSWORD | sed -e 's^&^\\\&^g' -e 's/\^/\\\^/g')^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/openils/conf/opensrf_core.xml" + ### drone gets fstab + eval cp -f $TEMPLATEDIR/interfaces "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network" + eval cp -f $TEMPLATEDIR/netplan/config.yaml "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan" + eval cp -f $TMPFOLDER/ntp.conf "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc" + eval cp -f $TMPFOLDER/resolv.conf "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc" + eval cp -f $TEMPLATEDIR/eg_fstab_drone "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc" + #eval cp -f $TEMPLATEDIR/init/eg_opensrf "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/init.d/opensrf" + eval cp -f $TEMPLATEDIR/setup-drone.sh "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}" + eval cp -f $TEMPLATEDIR/setup-vars "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/setup-vars" + eval cp -f "$TEMPLATEDIR/setup-functions" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/setup-functions" + eval cp -f $TEMPLATEDIR/apt/drone_apt.list "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}_apt.list" + eval cp -f $TMPFOLDER/60-evergreen-ils.conf "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/rsyslog.d" + eval cp -f $TEMPLATEDIR/rsyslog/50-default.conf "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/rsyslog.d" + #eval cp -f /tmp/rsyslog.conf "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc" + eval sed -i "s^drone_file^$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/setup-drone.sh" + eval sed -i "s^_EGVER^${EG_VERSION}^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/setup-drone.sh" + eval sed -i "s^_GENVER^${VERSION_}^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/setup-vars" + eval sed -i "s^_EGVER^${EG_VERSION}^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/setup-vars" + eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/setup-drone.sh" + eval sed -i "s^HEAD_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/eg_fstab_drone" + eval sed -i "s^UTILITY01_IP^$UTILITY01_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/eg_fstab_drone" + eval sed -i "s^UTILITY02_IP^$UTILITY02_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/eg_fstab_drone" + eval sed -i "s^UTILITY03_IP^$UTILITY03_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/eg_fstab_drone" + eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP)^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces" + eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP)^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml" + eval sed -i "s^Priv_NET^$PRIVATENET^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces" + eval sed -i "s^Priv_NET^$PRIVATENET^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml" + eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces" + eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml" + eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces" + eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml" + eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces" + eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml" + eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces" + eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml" + #eval sed -i "s^DRONE_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/exports + eval echo "/openils \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP\(ro,sync,no_subtree_check\)" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/exports + printf '\"' >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg + eval printf \"\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP\" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg + printf '\" ' >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg + eval echo "/openils/var/data/offline \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports + eval echo "/openils/var/data/vandelay \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports + eval echo "/openils/var/data/vandelay \$BRICKHOSTNAME${BRICK}_HEAD_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports + + eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}" > ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})/etc/hostname + eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/$TMPBRICKDRONES + eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}" >> $TMPOSRFNODES + cp -f $TEMPLATEDIR/opensrf.xml/opensrf.xml-drone $TMPFOLDER/opensrf.xml-drone + eval sed -i "s^NODE_HOST_NAME^$(eval echo \$BRICKHOSTNAME${BRICK}_DRONE${DRONE})^g" $TMPFOLDER/opensrf.xml-drone + cat $TMPFOLDER/opensrf.xml-drone >> $TMPOPENSRF_XML + ### eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}" >> $TMPBRICKDRONES + eval echo -e "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}.${CLUSTERDOMAINNAME} \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}" \ + >> $TMPHOSTS + eval printf "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}\\\tA\\\t\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP\\\n" >> $TMPZONEFILE + if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] + then + eval printf "${BRICK}${DRONE}\\\tIN\\\tPTR\\\t\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE_DMZ + else + eval printf "${BRICK}${DRONE}\\\tIN\\\tPTR\\\t\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE + fi + DRONE_LIST="$DRONE_LIST$(eval printf "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}\ ")" + ### Monitoring + printf 'define host {\n' >>$TMPNAGIHOSTS;eval printf "\\\thost_name\\\t\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}\\\n" >>$TMPNAGIHOSTS + eval printf "\\\talias\\\t\\\t\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}\\\n" >>$TMPNAGIHOSTS + eval printf "\\\taddress\\\t\\\t\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP\\\n" >>$TMPNAGIHOSTS + printf '\tuse\t\tgeneric-host\n}\n' >>$TMPNAGIHOSTS + + ### Build munin-node.conf file. #eval echo "host_name \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})/etc/munin/munin-node.conf #echo "allow $MONITOR01_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})/etc/munin/munin-node.conf #echo "allow $MONITOR02_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})/etc/munin/munin-node.conf - cp -f $TEMPLATEDIR/monitor/munin-node.conf ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})/etc/munin/munin-node.conf - eval sed -i "s^MONITORED_NODENAME.CLUSTER_DOMAIN_NAME^$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE}.$CLUSTERDOMAINNAME)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})/etc/munin/munin-node.conf - echo "allow $MONITOR01_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})/etc/munin/munin-node.conf - echo "allow $MONITOR02_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})/etc/munin/munin-node.conf + cp -f $TEMPLATEDIR/monitor/munin-node.conf ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})/etc/munin/munin-node.conf + eval sed -i "s^MONITORED_NODENAME.CLUSTER_DOMAIN_NAME^$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE}.$CLUSTERDOMAINNAME)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})/etc/munin/munin-node.conf + echo "allow $MONITOR01_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})/etc/munin/munin-node.conf + echo "allow $MONITOR02_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})/etc/munin/munin-node.conf #eval echo "host \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})/etc/munin/munin-node.conf - ### Build munin.conf file. - eval echo -e "[${CLUSTERDOMAINNAME}\;\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}.${CLUSTERDOMAINNAME}]" >>$TMPMUNINCONF - #eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP" >>$TMPMUNINCONF - eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF - #eval echo -e "\\\thost_name \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF - echo >>$TMPMUNINCONF - done - #echo - printf ")\n" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg - sed -i 's^ )^)^g' ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg - eval cat $TEMPLATEDIR/oils_brick.cfg-footer >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg - + ### Build munin.conf file. + eval echo -e "[${CLUSTERDOMAINNAME}\;\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}.${CLUSTERDOMAINNAME}]" >>$TMPMUNINCONF + #eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP" >>$TMPMUNINCONF + eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF + #eval echo -e "\\\thost_name \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF + echo >>$TMPMUNINCONF + done + #echo + printf ")\n" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg + sed -i 's^ )^)^g' ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg + eval cat $TEMPLATEDIR/oils_brick.cfg-footer >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg + done Unset_DMZ_Net @@ -2405,15 +2413,15 @@ for BRICK in $(seq $BRICKCOUNT) do eval cat $TMPHOSTS >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/hosts eval sed -i "s^thishost^$(eval echo \$BRICKHOSTNAME${BRICK})-head^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/hosts - [ -z "$HOSTNAME_PREFIX" ] || sed -i "s^${HOSTNAME_PREFIX}-${HOSTNAME_PREFIX}^${HOSTNAME_PREFIX}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/hosts + [ -z "$HOSTNAME_PREFIX" ] || sed -i "s^${HOSTNAME_PREFIX}-${HOSTNAME_PREFIX}^${HOSTNAME_PREFIX}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/hosts for DRONE in $(seq $DRONECOUNT) do eval cat $TMPHOSTS >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-drone0${DRONE}/etc/hosts eval sed -i "s^thishost^$(eval echo \$BRICKHOSTNAME${BRICK})-drone0${DRONE}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-drone0${DRONE}/etc/hosts - [ -z "$HOSTNAME_PREFIX" ] || sed -i "s^${HOSTNAME_PREFIX}-${HOSTNAME_PREFIX}^${HOSTNAME_PREFIX}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-drone0${DRONE}/etc/hosts - #if [ -z "$HOSTNAME_PREFIX" ] ; then - #sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" {OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-drone0${DRONE}/etc/hosts - #fi + [ -z "$HOSTNAME_PREFIX" ] || sed -i "s^${HOSTNAME_PREFIX}-${HOSTNAME_PREFIX}^${HOSTNAME_PREFIX}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-drone0${DRONE}/etc/hosts + #if [ -z "$HOSTNAME_PREFIX" ] ; then + #sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" {OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-drone0${DRONE}/etc/hosts + #fi done done @@ -2423,18 +2431,18 @@ done ### Run fuctions to create bricks. if [ "$DRONELESS" == "1" ] - then - echo - echo Creating bricks without separate drones please wait.... - sleep 1 - CreateBricks - echo "done!" - else - echo - echo Creating bricks with separate drones please wait.... - sleep 1 - CreateBricksAndDrones - echo "done!" + then + echo + echo Creating bricks without separate drones please wait.... + sleep 1 + CreateBricks + echo "done!" + else + echo + echo Creating bricks with separate drones please wait.... + sleep 1 + CreateBricksAndDrones + echo "done!" fi ### Fix padding of lists. @@ -2449,7 +2457,7 @@ sed -i "s^domain.org^$CLUSTERDOMAINNAME^g" "$TMPZONEFILE" sed -i "s^domain.org^$CLUSTERDOMAINNAME^g" "$TMPREVZONEFILE" if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] then - sed -i "s^domain.org^$CLUSTERDOMAINNAME^g" "$TMPREVZONEFILE_DMZ" + sed -i "s^domain.org^$CLUSTERDOMAINNAME^g" "$TMPREVZONEFILE_DMZ" fi sed -i "s^Priv_NET^$PRIVATENET^g" "$TMPZONEFILE" @@ -2460,9 +2468,9 @@ sed -i "s^Priv_NET^$PRIVATENET^g" "$TMPZONEFILE" ### to the network. (heads) if ! echo "${REPORTS_NFS_HOSTNAME}" | grep -q reporter01 - then - echo "/storage/reports-output ${REPORTER01_IP}(rw,sync,no_subtree_check)" >> $TMPFOLDER/exports_reporter - REPORTER_IS_HOST="NO" + then + echo "/storage/reports-output ${REPORTER01_IP}(rw,sync,no_subtree_check)" >> $TMPFOLDER/exports_reporter + REPORTER_IS_HOST="NO" fi @@ -2500,28 +2508,28 @@ sed -i "s^Priv_NET^$PRIVATENET^g" "$LVSCONFIGFILE" ### Complete LVS Director config. for LVS in $MACHINES_LVS_ONLY - do - cp -f $LVSCONFIGFILE $OUTDIR/$LVS/etc/ha.d - mkdir -p "$OUTDIR/$LVS/usr/local/bin" - cp -f $TEMPLATEDIR/lvs/check_https "$OUTDIR/$LVS/usr/local/bin" + do + cp -f $LVSCONFIGFILE $OUTDIR/$LVS/etc/ha.d + mkdir -p "$OUTDIR/$LVS/usr/local/bin" + cp -f $TEMPLATEDIR/lvs/check_https "$OUTDIR/$LVS/usr/local/bin" done ### Setup hosts file for LVS and DNS zonefiles on LVS servers. for LVS_SERVER in $MACHINES_LVS_ONLY - do - cp -f "$TMPHOSTS" "$OUTDIR/$LVS_SERVER/etc/hosts" && sed -i "s^thishost^$LVS_SERVER^g" "$OUTDIR/$LVS_SERVER/etc/hosts" - [ -z $HOSTNAME_PREFIX ] || sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" "$OUTDIR/$LVS_SERVER/etc/hosts" - [ -z "$HOSTNAME_PREFIX" ] || sed -i "s^${HOSTNAME_PREFIX}-${HOSTNAME_PREFIX}^${HOSTNAME_PREFIX}^g" "$OUTDIR/$LVS_SERVER/etc/hosts" - mkdir -p "$OUTDIR/$LVS_SERVER/etc/bind" - cp -f "$TMPZONEFILE" "$OUTDIR/$LVS_SERVER/etc/bind/${CLUSTERDOMAINNAME}-zone" - cp -f "$TMPREVZONEFILE" "$OUTDIR/$LVS_SERVER/etc/bind/${PRIVATENET}-zone" - if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] - then - cp -f "$TMPREVZONEFILE_DMZ" "$OUTDIR/$LVS_SERVER/etc/bind/${DMZ_NET}-zone" - sed -i "s^_MY_HOSTNAME^$LVS_SERVER^g" "$OUTDIR/$LVS_SERVER/etc/bind/${DMZ_NET}-zone" - fi - sed -i "s^_MY_HOSTNAME^$LVS_SERVER^g" "$OUTDIR/$LVS_SERVER/etc/bind/${CLUSTERDOMAINNAME}-zone" - sed -i "s^_MY_HOSTNAME^$LVS_SERVER^g" "$OUTDIR/$LVS_SERVER/etc/bind/${PRIVATENET}-zone" + do + cp -f "$TMPHOSTS" "$OUTDIR/$LVS_SERVER/etc/hosts" && sed -i "s^thishost^$LVS_SERVER^g" "$OUTDIR/$LVS_SERVER/etc/hosts" + [ -z $HOSTNAME_PREFIX ] || sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" "$OUTDIR/$LVS_SERVER/etc/hosts" + [ -z "$HOSTNAME_PREFIX" ] || sed -i "s^${HOSTNAME_PREFIX}-${HOSTNAME_PREFIX}^${HOSTNAME_PREFIX}^g" "$OUTDIR/$LVS_SERVER/etc/hosts" + mkdir -p "$OUTDIR/$LVS_SERVER/etc/bind" + cp -f "$TMPZONEFILE" "$OUTDIR/$LVS_SERVER/etc/bind/${CLUSTERDOMAINNAME}-zone" + cp -f "$TMPREVZONEFILE" "$OUTDIR/$LVS_SERVER/etc/bind/${PRIVATENET}-zone" + if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] + then + cp -f "$TMPREVZONEFILE_DMZ" "$OUTDIR/$LVS_SERVER/etc/bind/${DMZ_NET}-zone" + sed -i "s^_MY_HOSTNAME^$LVS_SERVER^g" "$OUTDIR/$LVS_SERVER/etc/bind/${DMZ_NET}-zone" + fi + sed -i "s^_MY_HOSTNAME^$LVS_SERVER^g" "$OUTDIR/$LVS_SERVER/etc/bind/${CLUSTERDOMAINNAME}-zone" + sed -i "s^_MY_HOSTNAME^$LVS_SERVER^g" "$OUTDIR/$LVS_SERVER/etc/bind/${PRIVATENET}-zone" done ### setup named.conf for bind DNS server on LVS servers @@ -2530,34 +2538,34 @@ echo "Setting up DNS Services..." NUM=0 for LVS_SERVERS in $MACHINES_LVS_ONLY do - ((NUM++)) + ((NUM++)) if ! echo "$LVS_SERVERS" | grep -q "lvs01" then - if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] - then - cp -f "$TEMPLATEDIR/lvs/bind/named.conf.local-slave_DMZ" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" - sed -i "s^_REV_DMZ_NET^$REV_DMZ_NET^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" - sed -i "s^DMZ_NET^$DMZ_NET^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" - else - cp -f "$TEMPLATEDIR/lvs/bind/named.conf.local-slave" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" - fi - sed -i "s^_LVS01_PRIVATE_IP^$LVS01_PRIVATE_IP^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" + if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] + then + cp -f "$TEMPLATEDIR/lvs/bind/named.conf.local-slave_DMZ" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" + sed -i "s^_REV_DMZ_NET^$REV_DMZ_NET^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" + sed -i "s^DMZ_NET^$DMZ_NET^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" + else + cp -f "$TEMPLATEDIR/lvs/bind/named.conf.local-slave" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" + fi + sed -i "s^_LVS01_PRIVATE_IP^$LVS01_PRIVATE_IP^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" + else + if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] + then + cp -f "$TEMPLATEDIR/lvs/bind/named.conf.local-master_DMZ" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" + sed -i "s^_REV_DMZ_NET^$REV_DMZ_NET^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" + sed -i "s^DMZ_NET^$DMZ_NET^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" else - if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] - then - cp -f "$TEMPLATEDIR/lvs/bind/named.conf.local-master_DMZ" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" - sed -i "s^_REV_DMZ_NET^$REV_DMZ_NET^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" - sed -i "s^DMZ_NET^$DMZ_NET^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" - else - cp -f "$TEMPLATEDIR/lvs/bind/named.conf.local-master" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" - fi - sed -i "s^_LVS02_PRIVATE_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" + cp -f "$TEMPLATEDIR/lvs/bind/named.conf.local-master" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" fi - eval sed -i "s^_MY_IP^\$LVS0${NUM}_PRIVATE_IP^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" - sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" - sed -i "s^domain.org^$CLUSTERDOMAINNAME^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" - sed -i "s^_REV_PRIVATE_NET^$REV_PRIVATENET^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" - + sed -i "s^_LVS02_PRIVATE_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" + fi + eval sed -i "s^_MY_IP^\$LVS0${NUM}_PRIVATE_IP^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" + sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" + sed -i "s^domain.org^$CLUSTERDOMAINNAME^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" + sed -i "s^_REV_PRIVATE_NET^$REV_PRIVATENET^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local" + done echo "Done." # eval echo "\$LVS0${NUM}_PRIVATE_IP @@ -2570,13 +2578,13 @@ echo "Done." ### Setup hosts file all except lvs and bricks. #for HOSTS in db01 db02 db03 logger01 utility01 sip01 sip02 reporter01 memcache01 memcache02 monitor01 backup01 admin01 for HOSTS in $MACHINES_NO_BRICKS - do - mkdir -p "$OUTDIR/$HOSTS/etc/network" && \ - cp -f "$TMPHOSTS" "$OUTDIR/$HOSTS/etc/hosts" && \ - mkdir -p "$OUTDIR/$HOSTS/etc/netplan" - sed -i "s^thishost^$HOSTS^g" "$OUTDIR/$HOSTS/etc/hosts" - [ -z $HOSTNAME_PREFIX ] || sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" "$OUTDIR/$HOSTS/etc/hosts" - [ -z "$HOSTNAME_PREFIX" ] || sed -i "s^${HOSTNAME_PREFIX}-${HOSTNAME_PREFIX}^${HOSTNAME_PREFIX}^g" "$OUTDIR/$HOSTS/etc/hosts" + do + mkdir -p "$OUTDIR/$HOSTS/etc/network" && \ + cp -f "$TMPHOSTS" "$OUTDIR/$HOSTS/etc/hosts" && \ + mkdir -p "$OUTDIR/$HOSTS/etc/netplan" + sed -i "s^thishost^$HOSTS^g" "$OUTDIR/$HOSTS/etc/hosts" + [ -z $HOSTNAME_PREFIX ] || sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" "$OUTDIR/$HOSTS/etc/hosts" + [ -z "$HOSTNAME_PREFIX" ] || sed -i "s^${HOSTNAME_PREFIX}-${HOSTNAME_PREFIX}^${HOSTNAME_PREFIX}^g" "$OUTDIR/$HOSTS/etc/hosts" done @@ -2584,37 +2592,37 @@ done ### Setup LVS interfaces and netplan file. NUM=0 for LVS in $MACHINES_LVS_ONLY - do - ((NUM++)) - cp -f "$TEMPLATEDIR/lvs/interfaces" "$OUTDIR/$LVS/etc/network" - cp -f "$TEMPLATEDIR/lvs/netplan/config.yaml" "$OUTDIR/$LVS/etc/netplan" - sed -i "s^Pub_NETMASK^$CLUSTERNETMASK^g" "$OUTDIR/$LVS/etc/network/interfaces" - sed -i "s^Pub_NETMASK^$CLUSTER_CIDR^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" - sed -i "s^Pub_GATEWAY^$CLUSTERGATEWAY^g" "$OUTDIR/$LVS/etc/network/interfaces" - sed -i "s^Pub_GATEWAY^$CLUSTERGATEWAY^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" - if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] - then - sed -i "s^Priv_NET^$DMZ_NET^g" "$OUTDIR/$LVS/etc/network/interfaces" - # sed -i "s^Priv_NET^$DMZ_NET^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" ### removed not needed for netplan - else - sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/$LVS/etc/network/interfaces" - # sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" ### removed not needed for netplan - fi - sed -i "s^Cluster_Public_IP^$CLUSTERIPADDRESS^g" "$OUTDIR/$LVS/etc/network/interfaces" - # sed -i "s^Cluster_Public_IP^$CLUSTERIPADDRESS^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" ### removed not needed for netplan - - eval sed -i "s^Pub_IP^\$LVS0${NUM}_PHYSICAL_PUBLIC_IP^g" "$OUTDIR/$LVS/etc/network/interfaces" - eval sed -i "s^Pub_IP^\$LVS0${NUM}_PHYSICAL_PUBLIC_IP^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" - eval sed -i "s^Priv_Physical_Address^\$LVS0${NUM}_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/network/interfaces" - eval sed -i "s^Priv_Physical_Address^\$LVS0${NUM}_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" - sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/network/interfaces" - sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" - sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/network/interfaces" - sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" - sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "$OUTDIR/$LVS/etc/network/interfaces" - sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" - sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$LVS/etc/network/interfaces" - sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" + do + ((NUM++)) + cp -f "$TEMPLATEDIR/lvs/interfaces" "$OUTDIR/$LVS/etc/network" + cp -f "$TEMPLATEDIR/lvs/netplan/config.yaml" "$OUTDIR/$LVS/etc/netplan" + sed -i "s^Pub_NETMASK^$CLUSTERNETMASK^g" "$OUTDIR/$LVS/etc/network/interfaces" + sed -i "s^Pub_NETMASK^$CLUSTER_CIDR^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" + sed -i "s^Pub_GATEWAY^$CLUSTERGATEWAY^g" "$OUTDIR/$LVS/etc/network/interfaces" + sed -i "s^Pub_GATEWAY^$CLUSTERGATEWAY^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" + if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] + then + sed -i "s^Priv_NET^$DMZ_NET^g" "$OUTDIR/$LVS/etc/network/interfaces" + # sed -i "s^Priv_NET^$DMZ_NET^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" ### removed not needed for netplan + else + sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/$LVS/etc/network/interfaces" + # sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" ### removed not needed for netplan + fi + sed -i "s^Cluster_Public_IP^$CLUSTERIPADDRESS^g" "$OUTDIR/$LVS/etc/network/interfaces" + # sed -i "s^Cluster_Public_IP^$CLUSTERIPADDRESS^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" ### removed not needed for netplan + + eval sed -i "s^Pub_IP^\$LVS0${NUM}_PHYSICAL_PUBLIC_IP^g" "$OUTDIR/$LVS/etc/network/interfaces" + eval sed -i "s^Pub_IP^\$LVS0${NUM}_PHYSICAL_PUBLIC_IP^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" + eval sed -i "s^Priv_Physical_Address^\$LVS0${NUM}_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/network/interfaces" + eval sed -i "s^Priv_Physical_Address^\$LVS0${NUM}_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" + sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/network/interfaces" + sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" + sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/network/interfaces" + sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" + sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "$OUTDIR/$LVS/etc/network/interfaces" + sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" + sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$LVS/etc/network/interfaces" + sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$LVS/etc/netplan/config.yaml" done @@ -2636,33 +2644,33 @@ done SetupInterfaces () { #Configure Interfaces file. #for NET_NODE in db01 db02 db03 logger01 utility01 sip01 sip02 reporter01 memcache01 memcache02 monitor01 backup01 admin01 for NET_NODE in $MACHINES_NO_BRICKS_LVS - do - if [[ "$USE_HOSTNAME_PREFIX" = "y" || "$USE_HOSTNAME_PREFIX" = "Y" ]] - then - NODE_NO_PREFIX=$(echo $NET_NODE|awk -F"-" '{ print $2 }') - else - NODE_NO_PREFIX=$NET_NODE - fi - cp -f "$TEMPLATEDIR/netplan/config.yaml" "$OUTDIR/$NET_NODE/etc/netplan" - cp -f "$TEMPLATEDIR/interfaces" "$OUTDIR/$NET_NODE/etc/network" && \ - # eval sed -i "s^Priv_IP^\$${NET_NODE^^*}_IP^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" - if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] - then - sed -i "s^Priv_NET.1^$PRIVATENET_GATEWAY^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" - sed -i "s^Priv_NET.1^$PRIVATENET_GATEWAY^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml" - fi - eval sed -i "s^Priv_IP^\$${NODE_NO_PREFIX^^*}_IP^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" - eval sed -i "s^Priv_IP^\$${NODE_NO_PREFIX^^*}_IP^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml" - sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" - sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml" - sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" - sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml" - sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" - sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml" - sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" - sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml" - sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" - sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml" + do + if [[ "$USE_HOSTNAME_PREFIX" = "y" || "$USE_HOSTNAME_PREFIX" = "Y" ]] + then + NODE_NO_PREFIX=$(echo $NET_NODE|awk -F"-" '{ print $2 }') + else + NODE_NO_PREFIX=$NET_NODE + fi + cp -f "$TEMPLATEDIR/netplan/config.yaml" "$OUTDIR/$NET_NODE/etc/netplan" + cp -f "$TEMPLATEDIR/interfaces" "$OUTDIR/$NET_NODE/etc/network" && \ + # eval sed -i "s^Priv_IP^\$${NET_NODE^^*}_IP^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" + if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ] + then + sed -i "s^Priv_NET.1^$PRIVATENET_GATEWAY^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" + sed -i "s^Priv_NET.1^$PRIVATENET_GATEWAY^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml" + fi + eval sed -i "s^Priv_IP^\$${NODE_NO_PREFIX^^*}_IP^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" + eval sed -i "s^Priv_IP^\$${NODE_NO_PREFIX^^*}_IP^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml" + sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" + sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml" + sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" + sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml" + sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" + sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml" + sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" + sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml" + sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/$NET_NODE/etc/network/interfaces" + sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml" done } SetupInterfaces @@ -2670,8 +2678,8 @@ SetupInterfaces ### Setup Memcache for MEMCACHE_NODE in $MACHINES_MEMCACHE_ONLY do - mkdir -p "$OUTDIR/$MEMCACHE_NODE/usr/local/bin" - cp -f "$TEMPLATEDIR/memcache/check_memcache_connections.sh" "$OUTDIR/$MEMCACHE_NODE/usr/local/bin" + mkdir -p "$OUTDIR/$MEMCACHE_NODE/usr/local/bin" + cp -f "$TEMPLATEDIR/memcache/check_memcache_connections.sh" "$OUTDIR/$MEMCACHE_NODE/usr/local/bin" done ### Setup Utility @@ -2686,12 +2694,12 @@ cp -f "$TMPFOLDER/exports" "$OUTDIR/$UTILITY/etc/" ### action trigger filters for utility. mkdir -p "$OUTDIR/$UTILITY/openils/conf" if [ -e "$CUSTOMDIR/action_trigger_filters.json" ] - then - echo - echo -e $COL_GREEN"Using custom action trigger filters."$COL_RESET - cp -f "$CUSTOMDIR/action_trigger_filters.json" "$OUTDIR/$UTILITY/openils/conf" - else - cp -f "$TEMPLATEDIR/action_trigger_filters.json" "$OUTDIR/$UTILITY/openils/conf" + then + echo + echo -e $COL_GREEN"Using custom action trigger filters."$COL_RESET + cp -f "$CUSTOMDIR/action_trigger_filters.json" "$OUTDIR/$UTILITY/openils/conf" + else + cp -f "$TEMPLATEDIR/action_trigger_filters.json" "$OUTDIR/$UTILITY/openils/conf" fi ### copy pines scripts to utility mkdir -p "$OUTDIR/$UTILITY/home/opensrf/eg/ums" @@ -2710,9 +2718,9 @@ echo "$(date)" > "$OUTDIR/${REPORTS_NFS_HOSTNAME}/etc/eg_reports_output_host.txt ### Setup DNS and NTP configs. Except LVS and bricks. #for DNSNODE in db01 db02 db03 logger01 utility01 sip01 sip02 reporter01 memcache01 memcache02 monitor01 backup01 admin01 for DNSNODE in $MACHINES_NO_LVS - do - cp -f "$TMPFOLDER/resolv.conf" "$OUTDIR/$DNSNODE/etc" - cp -f "$TMPFOLDER/ntp.conf" "$OUTDIR/$DNSNODE/etc" + do + cp -f "$TMPFOLDER/resolv.conf" "$OUTDIR/$DNSNODE/etc" + cp -f "$TMPFOLDER/ntp.conf" "$OUTDIR/$DNSNODE/etc" done @@ -2722,10 +2730,10 @@ echo "Setting up hostname and logger config files for non-brick nodes.." #for HOSTNODE in lvs01 lvs02 db01 db02 db03 logger01 utility01 sip01 sip02 reporter01 memcache01 memcache02 monitor01 backup01 admin01 for HOSTNODE in $MACHINES_NO_BRICKS do - echo $HOSTNODE > "$OUTDIR/${HOSTNODE}/etc/hostname" - mkdir -p "$OUTDIR/${HOSTNODE}/etc/rsyslog.d" - cp -f $TEMPLATEDIR/rsyslog/50-default.conf "$OUTDIR/${HOSTNODE}/etc/rsyslog.d" - cp -f $TMPFOLDER/60-evergreen-ils.conf "$OUTDIR/${HOSTNODE}/etc/rsyslog.d" + echo $HOSTNODE > "$OUTDIR/${HOSTNODE}/etc/hostname" + mkdir -p "$OUTDIR/${HOSTNODE}/etc/rsyslog.d" + cp -f $TEMPLATEDIR/rsyslog/50-default.conf "$OUTDIR/${HOSTNODE}/etc/rsyslog.d" + cp -f $TMPFOLDER/60-evergreen-ils.conf "$OUTDIR/${HOSTNODE}/etc/rsyslog.d" done echo "Done setting up hostname and logger config for non-bricks nodes." @@ -2734,44 +2742,44 @@ echo "Done setting up hostname and logger config for non-bricks nodes." #for OTHERNODE in utility01 sip01 sip02 reporter01 for OTHERNODE in $MACHINES_OSRF_NO_BRICKS do - mkdir -p "$OUTDIR/$OTHERNODE/var/backup" - mkdir -p "$OUTDIR/$OTHERNODE/openils/var/data/offline" - mkdir -p "$OUTDIR/$OTHERNODE/openils/var/data/offline/blocked" - mkdir -p "$OUTDIR/$OTHERNODE/openils/var/data/vandelay" - mkdir -p "$OUTDIR/$OTHERNODE/openils/var/web/reporter" - - mkdir -p "$OUTDIR/$OTHERNODE/etc/apache2/ssl" && cp -f "${CERT_DIR}/server.key" "$OUTDIR/$OTHERNODE/etc/apache2/ssl" - cp -f "${CERT_DIR}/server.crt" "$OUTDIR/$OTHERNODE/etc/apache2/ssl" - cp -f "${CERT_DIR}/dhparams.pem" "$OUTDIR/$OTHERNODE/etc/apache2/ssl" - [ -e "${CERT_DIR}/ca.crt" ] && cp -f "${CERT_DIR}/ca.crt" "$OUTDIR/$OTHERNODE/etc/apache2/ssl" - [ -e "${CUSTOMDIR}/zips.txt" ] && cp -f "${CUSTOMDIR}/zips.txt" "$OUTDIR/$OTHERNODE/openils/var/data/zips.txt" - mkdir -p "$OUTDIR/$OTHERNODE/openils/conf" && cp -f "$TEMPLATEDIR/opensrf_core.xml" "$OUTDIR/${OTHERNODE}/openils/conf" - #mkdir -p "$OUTDIR/$OTHERNODE/etc/init.d" && cp -f "$TEMPLATEDIR/init/eg_opensrf" "$OUTDIR/${OTHERNODE}/etc/init.d/opensrf" - mkdir -p "$OUTDIR/$OTHERNODE/var/run/evergreen" - sed -i "s^Brick_head_Fqdn^${OTHERNODE}.${CLUSTERDOMAINNAME}^g" "${OUTDIR}/${OTHERNODE}/openils/conf/opensrf_core.xml" - #sed -i "s^OpenSRF_Password^$OPENSRF_PASSWORD^g" "${OUTDIR}/${OTHERNODE}/openils/conf/opensrf_core.xml" - sed -i "s^OpenSRF_Password^$(echo $OPENSRF_PASSWORD | sed -e 's^&^\\\&^g' -e 's/\^/\\\^/g')^g" "${OUTDIR}/${OTHERNODE}/openils/conf/opensrf_core.xml" - cp -f $TEMPLATEDIR/opensrf.xml/opensrf.xml-full $TMPFOLDER/opensrf.xml-full - sed -i "s^NODE_HOST_NAME.ClusterDomainName^${OTHERNODE}.${CLUSTERDOMAINNAME}^g" $TMPFOLDER/opensrf.xml-full - cat $TMPFOLDER/opensrf.xml-full >> $TMPOPENSRF_XML - cp -f "$TEMPLATEDIR/oils_web.xml" "$OUTDIR/$OTHERNODE/openils/conf" - echo ${OTHERNODE} >> $TMPOSRFNODES - if echo ${OTHERNODE} | grep -q reporter0 - then - if [ "$REPORTER_IS_HOST" = "NO" ] ### Make sure we mount nfs share on reporter if its not the host. - then - cp -f $TEMPLATEDIR/eg_fstab_reporter "$OUTDIR/${OTHERNODE}/etc" - sed -i "s^REPORTER_OUTPUT_NFS_HOST_IP^$REPORTS_NFS_HOSTNAME_IP^g" "$OUTDIR/${OTHERNODE}/etc/eg_fstab_reporter" - fi - fi + mkdir -p "$OUTDIR/$OTHERNODE/var/backup" + mkdir -p "$OUTDIR/$OTHERNODE/openils/var/data/offline" + mkdir -p "$OUTDIR/$OTHERNODE/openils/var/data/offline/blocked" + mkdir -p "$OUTDIR/$OTHERNODE/openils/var/data/vandelay" + mkdir -p "$OUTDIR/$OTHERNODE/openils/var/web/reporter" + + mkdir -p "$OUTDIR/$OTHERNODE/etc/apache2/ssl" && cp -f "${CERT_DIR}/server.key" "$OUTDIR/$OTHERNODE/etc/apache2/ssl" + cp -f "${CERT_DIR}/server.crt" "$OUTDIR/$OTHERNODE/etc/apache2/ssl" + cp -f "${CERT_DIR}/dhparams.pem" "$OUTDIR/$OTHERNODE/etc/apache2/ssl" + [ -e "${CERT_DIR}/ca.crt" ] && cp -f "${CERT_DIR}/ca.crt" "$OUTDIR/$OTHERNODE/etc/apache2/ssl" + [ -e "${CUSTOMDIR}/zips.txt" ] && cp -f "${CUSTOMDIR}/zips.txt" "$OUTDIR/$OTHERNODE/openils/var/data/zips.txt" + mkdir -p "$OUTDIR/$OTHERNODE/openils/conf" && cp -f "$TEMPLATEDIR/opensrf_core.xml" "$OUTDIR/${OTHERNODE}/openils/conf" + #mkdir -p "$OUTDIR/$OTHERNODE/etc/init.d" && cp -f "$TEMPLATEDIR/init/eg_opensrf" "$OUTDIR/${OTHERNODE}/etc/init.d/opensrf" + mkdir -p "$OUTDIR/$OTHERNODE/var/run/evergreen" + sed -i "s^Brick_head_Fqdn^${OTHERNODE}.${CLUSTERDOMAINNAME}^g" "${OUTDIR}/${OTHERNODE}/openils/conf/opensrf_core.xml" + #sed -i "s^OpenSRF_Password^$OPENSRF_PASSWORD^g" "${OUTDIR}/${OTHERNODE}/openils/conf/opensrf_core.xml" + sed -i "s^OpenSRF_Password^$(echo $OPENSRF_PASSWORD | sed -e 's^&^\\\&^g' -e 's/\^/\\\^/g')^g" "${OUTDIR}/${OTHERNODE}/openils/conf/opensrf_core.xml" + cp -f $TEMPLATEDIR/opensrf.xml/opensrf.xml-full $TMPFOLDER/opensrf.xml-full + sed -i "s^NODE_HOST_NAME.ClusterDomainName^${OTHERNODE}.${CLUSTERDOMAINNAME}^g" $TMPFOLDER/opensrf.xml-full + cat $TMPFOLDER/opensrf.xml-full >> $TMPOPENSRF_XML + cp -f "$TEMPLATEDIR/oils_web.xml" "$OUTDIR/$OTHERNODE/openils/conf" + echo ${OTHERNODE} >> $TMPOSRFNODES + if echo ${OTHERNODE} | grep -q reporter0 + then + if [ "$REPORTER_IS_HOST" = "NO" ] ### Make sure we mount nfs share on reporter if its not the host. + then + cp -f $TEMPLATEDIR/eg_fstab_reporter "$OUTDIR/${OTHERNODE}/etc" + sed -i "s^REPORTER_OUTPUT_NFS_HOST_IP^$REPORTS_NFS_HOSTNAME_IP^g" "$OUTDIR/${OTHERNODE}/etc/eg_fstab_reporter" + fi + fi done ### copy completed opensrf file to their respective locations. #for OSRF_NODE in utility01 sip01 sip02 reporter01 for OSRF_NODE in $MACHINES_OSRF_NO_BRICKS do - cp -f "$TMPOPENSRF_XML" "$OUTDIR/$OSRF_NODE/openils/conf/opensrf.xml" - cat $TEMPLATEDIR/opensrf.xml/opensrf.xml-footer >> "$OUTDIR/$OTHERNODE/openils/conf/opensrf.xml" + cp -f "$TMPOPENSRF_XML" "$OUTDIR/$OSRF_NODE/openils/conf/opensrf.xml" + cat $TEMPLATEDIR/opensrf.xml/opensrf.xml-footer >> "$OUTDIR/$OTHERNODE/openils/conf/opensrf.xml" done ### Add stuff to sudoers.d for opensrf nodes that are not bricks @@ -2779,8 +2787,8 @@ done ### Also make sure user nagios can run check_osrf for OSRF_SUDO_NODE in $MACHINES_OSRF_NO_BRICKS do - mkdir -p "$OUTDIR/$OSRF_SUDO_NODE/etc/sudoers.d" - cp -f "${TEMPLATEDIR}/systemd/opensrf.sudoers" "$OUTDIR/${OSRF_SUDO_NODE}/etc/sudoers.d/opensrf" + mkdir -p "$OUTDIR/$OSRF_SUDO_NODE/etc/sudoers.d" + cp -f "${TEMPLATEDIR}/systemd/opensrf.sudoers" "$OUTDIR/${OSRF_SUDO_NODE}/etc/sudoers.d/opensrf" cp -f "${TEMPLATEDIR}/monitor/check_osrf.sudoers" "$OUTDIR/${OSRF_SUDO_NODE}/etc/sudoers.d/nagios" done @@ -2790,28 +2798,28 @@ echo echo "Setting up SIP.." if [ -e "${CUSTOMDIR}/oils_sip.xml" ] then - cp -f "${CUSTOMDIR}/oils_sip.xml" "${TMPFOLDER}" - #sed -i "/<\/listeners>/a \\\t<\!-- One or more Memecache servers are required for Mulitplex mode. -->\n\t<\!-- Cache server(s) are ignored in non-Multiplex mode -->\n\t\n\t\ \$MEMCACHE01_IP:11211\n\t\ \$MEMCACHE02_IP:11211\n\t" "${TMPFOLDER}/oils_sip.xml" - sed -i "//d" "${TMPFOLDER}/oils_sip.xml" - sed -i "//a \\\t$MEMCACHE01_IP:11211\n\t$MEMCACHE02_IP:11211" "${TMPFOLDER}/oils_sip.xml" + cp -f "${CUSTOMDIR}/oils_sip.xml" "${TMPFOLDER}" + #sed -i "/<\/listeners>/a \\\t<\!-- One or more Memecache servers are required for Mulitplex mode. -->\n\t<\!-- Cache server(s) are ignored in non-Multiplex mode -->\n\t\n\t\ \$MEMCACHE01_IP:11211\n\t\ \$MEMCACHE02_IP:11211\n\t" "${TMPFOLDER}/oils_sip.xml" + sed -i "//d" "${TMPFOLDER}/oils_sip.xml" + sed -i "//a \\\t$MEMCACHE01_IP:11211\n\t$MEMCACHE02_IP:11211" "${TMPFOLDER}/oils_sip.xml" else - echo - echo -e ${COL_RED} "WARNING!!" ${COL_RESET} ${COL_GREEN} "oils_sip.xml" ${COL_RESET} "was not found in ${CUSTOMDIR}" - sleep 5 + echo + echo -e ${COL_RED} "WARNING!!" ${COL_RESET} ${COL_GREEN} "oils_sip.xml" ${COL_RESET} "was not found in ${CUSTOMDIR}" + sleep 5 fi for SIPNODE in $MACHINES_SIP_ONLY do - mkdir -p "$OUTDIR/$SIPNODE/opt" - mkdir -p "$OUTDIR/$SIPNODE/etc/init.d" - mkdir -p "$OUTDIR/$SIPNODE/etc/cron.d" - mkdir -p "$OUTDIR/$SIPNODE/var/www" - mkdir -p "$OUTDIR/$SIPNODE/root/eg" - mkdir -p "$OUTDIR/$SIPNODE/usr/local/bin" - tar zxf $TEMPLATEDIR/SIP/SIPServer.tar.gz -C "$OUTDIR/$SIPNODE/opt" - cp -f $TEMPLATEDIR/SIP/sip.init "$OUTDIR/$SIPNODE/etc/init.d/oils_sip" - cp -f $TEMPLATEDIR/SIP/eg_sip_root.crontab "$OUTDIR/$SIPNODE/root/eg" - cp -f $TEMPLATEDIR/SIP/display_sip_connections.sh "$OUTDIR/$SIPNODE/root/eg" - cp -f $TEMPLATEDIR/SIP/sip_stats "$OUTDIR/$SIPNODE/usr/local/bin" + mkdir -p "$OUTDIR/$SIPNODE/opt" + mkdir -p "$OUTDIR/$SIPNODE/etc/init.d" + mkdir -p "$OUTDIR/$SIPNODE/etc/cron.d" + mkdir -p "$OUTDIR/$SIPNODE/var/www" + mkdir -p "$OUTDIR/$SIPNODE/root/eg" + mkdir -p "$OUTDIR/$SIPNODE/usr/local/bin" + tar zxf $TEMPLATEDIR/SIP/SIPServer.tar.gz -C "$OUTDIR/$SIPNODE/opt" + cp -f $TEMPLATEDIR/SIP/sip.init "$OUTDIR/$SIPNODE/etc/init.d/oils_sip" + cp -f $TEMPLATEDIR/SIP/eg_sip_root.crontab "$OUTDIR/$SIPNODE/root/eg" + cp -f $TEMPLATEDIR/SIP/display_sip_connections.sh "$OUTDIR/$SIPNODE/root/eg" + cp -f $TEMPLATEDIR/SIP/sip_stats "$OUTDIR/$SIPNODE/usr/local/bin" done echo "Done setting up SIP." @@ -2822,14 +2830,14 @@ echo echo "Setting up logger" for LOGGER in $MACHINES_LOGGER do - mkdir -p "$OUTDIR/$LOGGER/etc/rsyslog.d" - mkdir -p "$OUTDIR/$LOGGER/root/eg" - cp -f "$TEMPLATEDIR/rsyslog/pg-log-analyzer-cron" "$OUTDIR/$LOGGER/root/eg" - cp -f "$TEMPLATEDIR/rsyslog/pg-log-analyzer" "$OUTDIR/$LOGGER/root/eg" - cp -f "$TEMPLATEDIR/rsyslog/archive.sh" "$OUTDIR/$LOGGER/root/eg" - cp -f "$TEMPLATEDIR/rsyslog/logger-crontab" "$OUTDIR/$LOGGER/root/eg" - cp -f "$TEMPLATEDIR/rsyslog/opensrf-rsyslog.conf" "$OUTDIR/$LOGGER/etc/rsyslog.d" - cp -f "$TEMPLATEDIR/rsyslog/rsyslog.conf-logger" "$OUTDIR/$LOGGER/etc/rsyslog.conf" + mkdir -p "$OUTDIR/$LOGGER/etc/rsyslog.d" + mkdir -p "$OUTDIR/$LOGGER/root/eg" + cp -f "$TEMPLATEDIR/rsyslog/pg-log-analyzer-cron" "$OUTDIR/$LOGGER/root/eg" + cp -f "$TEMPLATEDIR/rsyslog/pg-log-analyzer" "$OUTDIR/$LOGGER/root/eg" + cp -f "$TEMPLATEDIR/rsyslog/archive.sh" "$OUTDIR/$LOGGER/root/eg" + cp -f "$TEMPLATEDIR/rsyslog/logger-crontab" "$OUTDIR/$LOGGER/root/eg" + cp -f "$TEMPLATEDIR/rsyslog/opensrf-rsyslog.conf" "$OUTDIR/$LOGGER/etc/rsyslog.d" + cp -f "$TEMPLATEDIR/rsyslog/rsyslog.conf-logger" "$OUTDIR/$LOGGER/etc/rsyslog.conf" done echo "Done setting up logger" @@ -2837,35 +2845,35 @@ echo "Done setting up logger" #for DB_SERVER in db01 db02 db03 for DB_SERVER in $MACHINES_DB_ONLY do - mkdir -p $OUTDIR/${DB_SERVER}/etc/init.d - mkdir -p $OUTDIR/${DB_SERVER}/etc/postgresql/$PSQL_VERSION/main - mkdir -p $OUTDIR/${DB_SERVER}/etc/postgresql/$PSQL_VERSION/main/conf.d - mkdir -p $OUTDIR/${DB_SERVER}/home/postgres/eg - mkdir -p $OUTDIR/${DB_SERVER}/root/eg - #cp -f "$TEMPLATEDIR/init/eg_database" "$OUTDIR/${DB_SERVER}/etc/init.d" - # cp -f "$TEMPLATEDIR/db/postgresql.conf" "$OUTDIR/${DB_SERVER}/etc/postgresql/$PSQL_VERSION/main" #TODO removed temporarily. - cp -f "$TEMPLATEDIR/db/pg_hba.conf-${PSQL_VERSION}" "$OUTDIR/${DB_SERVER}/etc/postgresql/$PSQL_VERSION/main/pg_hba.conf" - cp -f "$TEMPLATEDIR/db/postgresql-evergreen-cluster.conf" "$OUTDIR/${DB_SERVER}/etc/postgresql/$PSQL_VERSION/main/conf.d" - cp -f "$TEMPLATEDIR/db/eg_db_postgres.crontab" "$OUTDIR/${DB_SERVER}/home/postgres/eg" - cp -f "$TEMPLATEDIR/db/eg_db_root.crontab" "$OUTDIR/${DB_SERVER}/root/eg" - cp -f "$TEMPLATEDIR/db/eg-db-backup.sh" "$OUTDIR/${DB_SERVER}/home/postgres/eg" - cp -f "$TEMPLATEDIR/db/eg-wal-archive.sh" "$OUTDIR/${DB_SERVER}/home/postgres/eg" - cp -f "$TEMPLATEDIR/db/snapshot.sh" "$OUTDIR/${DB_SERVER}/root/eg" - #cp -f "$TEMPLATEDIR/db/eg_fstab_db" "$OUTDIR/${DB_SERVER}/etc" - echo "${BACKUP01_IP}:/var/backup /var/backup/ nfs rw 0 0" > "$OUTDIR/${DB_SERVER}/etc/eg_fstab_db" - #sed -i "s^_BACKUP01_IP^${BACKUP01_IP}^g" "$OUTDIR/${DB_SERVER}/etc/eg_fstab_db" - sed -i "s^_PSQL_VERSION^${PSQL_VERSION}^g" "$OUTDIR/${DB_SERVER}/home/postgres/eg/eg-db-backup.sh" - sed -i "s^_CLUSTERDOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/${DB_SERVER}/home/postgres/eg/eg-db-backup.sh" - sed -i "s^Priv_NET^${PRIVATENET}^g" "$OUTDIR/${DB_SERVER}/etc/postgresql/$PSQL_VERSION/main/pg_hba.conf" - echo "/var/backup ${DB_SERVER}(rw,sync,no_root_squash,no_subtree_check)" >> $TMPFOLDER/exports_backup + mkdir -p $OUTDIR/${DB_SERVER}/etc/init.d + mkdir -p $OUTDIR/${DB_SERVER}/etc/postgresql/$PSQL_VERSION/main + mkdir -p $OUTDIR/${DB_SERVER}/etc/postgresql/$PSQL_VERSION/main/conf.d + mkdir -p $OUTDIR/${DB_SERVER}/home/postgres/eg + mkdir -p $OUTDIR/${DB_SERVER}/root/eg + #cp -f "$TEMPLATEDIR/init/eg_database" "$OUTDIR/${DB_SERVER}/etc/init.d" + # cp -f "$TEMPLATEDIR/db/postgresql.conf" "$OUTDIR/${DB_SERVER}/etc/postgresql/$PSQL_VERSION/main" #TODO removed temporarily. + cp -f "$TEMPLATEDIR/db/pg_hba.conf-${PSQL_VERSION}" "$OUTDIR/${DB_SERVER}/etc/postgresql/$PSQL_VERSION/main/pg_hba.conf" + cp -f "$TEMPLATEDIR/db/postgresql-evergreen-cluster.conf" "$OUTDIR/${DB_SERVER}/etc/postgresql/$PSQL_VERSION/main/conf.d" + cp -f "$TEMPLATEDIR/db/eg_db_postgres.crontab" "$OUTDIR/${DB_SERVER}/home/postgres/eg" + cp -f "$TEMPLATEDIR/db/eg_db_root.crontab" "$OUTDIR/${DB_SERVER}/root/eg" + cp -f "$TEMPLATEDIR/db/eg-db-backup.sh" "$OUTDIR/${DB_SERVER}/home/postgres/eg" + cp -f "$TEMPLATEDIR/db/eg-wal-archive.sh" "$OUTDIR/${DB_SERVER}/home/postgres/eg" + cp -f "$TEMPLATEDIR/db/snapshot.sh" "$OUTDIR/${DB_SERVER}/root/eg" + #cp -f "$TEMPLATEDIR/db/eg_fstab_db" "$OUTDIR/${DB_SERVER}/etc" + echo "${BACKUP01_IP}:/var/backup /var/backup/ nfs rw 0 0" > "$OUTDIR/${DB_SERVER}/etc/eg_fstab_db" + #sed -i "s^_BACKUP01_IP^${BACKUP01_IP}^g" "$OUTDIR/${DB_SERVER}/etc/eg_fstab_db" + sed -i "s^_PSQL_VERSION^${PSQL_VERSION}^g" "$OUTDIR/${DB_SERVER}/home/postgres/eg/eg-db-backup.sh" + sed -i "s^_CLUSTERDOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/${DB_SERVER}/home/postgres/eg/eg-db-backup.sh" + sed -i "s^Priv_NET^${PRIVATENET}^g" "$OUTDIR/${DB_SERVER}/etc/postgresql/$PSQL_VERSION/main/pg_hba.conf" + echo "/var/backup ${DB_SERVER}(rw,sync,no_root_squash,no_subtree_check)" >> $TMPFOLDER/exports_backup done ### setup exports for backup for BACKUP_SERVER in $MACHINES_BACKUP do - cp -f "$TMPFOLDER/exports_backup" "$OUTDIR/$BACKUP_SERVER/etc/exports" - mkdir -p "$OUTDIR/$BACKUP_SERVER/var/backup" + cp -f "$TMPFOLDER/exports_backup" "$OUTDIR/$BACKUP_SERVER/etc/exports" + mkdir -p "$OUTDIR/$BACKUP_SERVER/var/backup" done ### Setup system files for the node @@ -2919,8 +2927,8 @@ echo "Done." #echo "${REPORTS_NFS_HOSTNAME}" if ! echo "${REPORTS_NFS_HOSTNAME}" | grep -q "reporter0\|db0" 2>/dev/null - then - Reports_NFS_Host + then + Reports_NFS_Host fi ##### Configure basic monitoring for non brick nodes. @@ -2928,19 +2936,19 @@ for NAGINODE in ${MACHINES_NO_BRICKS} do ### Generate the hosts.cfg file MONITOR_HOST=$( echo "${NAGINODE}" | tr '[:lower:]' '[:upper:]' ) - echo '### Generated by GenaSYS' >>$TMPNAGIHOSTS - printf 'define host {\n' >>$TMPNAGIHOSTS;printf "\thost_name\t${NAGINODE}\n" >>$TMPNAGIHOSTS - printf "\talias\t\t$NAGINODE\n" >>$TMPNAGIHOSTS - MACHINES_LIST="$MACHINES_LIST$(printf "$NAGINODE ")" + echo '### Generated by GenaSYS' >>$TMPNAGIHOSTS + printf 'define host {\n' >>$TMPNAGIHOSTS;printf "\thost_name\t${NAGINODE}\n" >>$TMPNAGIHOSTS + printf "\talias\t\t$NAGINODE\n" >>$TMPNAGIHOSTS + MACHINES_LIST="$MACHINES_LIST$(printf "$NAGINODE ")" - if echo $NAGINODE | grep -q lvs0 + if echo $NAGINODE | grep -q lvs0 then eval printf "\\\taddress\\\t\\\t\$${MONITOR_HOST#*-}_PRIVATE_IP\\\n" >>$TMPNAGIHOSTS else eval printf "\\\taddress\\\t\\\t\$${MONITOR_HOST#*-}_IP\\\n" >>$TMPNAGIHOSTS fi - printf '\tuse\t\tgeneric-host\n}\n' >>$TMPNAGIHOSTS + printf '\tuse\t\tgeneric-host\n}\n' >>$TMPNAGIHOSTS done @@ -2955,7 +2963,7 @@ TMPNAGHOSTGROUPS="$TMPFOLDER/hostgroups.cfg" GenHostGroup () { ### Usage: $0 "hostgroup_name" "alias" "members" if ! grep -q "GenaSYS" $TMPNAGHOSTGROUPS 2>/dev/null then - echo '### Generated by GenaSYS.' >> $TMPNAGHOSTGROUPS + echo '### Generated by GenaSYS.' >> $TMPNAGHOSTGROUPS fi printf 'define hostgroup {\n' >>$TMPNAGHOSTGROUPS printf "\thostgroup_name ${1}\n" >>$TMPNAGHOSTGROUPS @@ -2980,22 +2988,22 @@ GenHostGroup "ssh-servers" "SSH Servers" "*" ### Configure the monitoring servers. for MONITOR in $MACHINES_MONITOR do - mkdir -p "$OUTDIR/$MONITOR/etc/icinga/objects" - mkdir -p "$OUTDIR/$MONITOR/etc/apache2/sites-available" - mkdir -p "$OUTDIR/$MONITOR/var/www" - cp -f "$TEMPLATEDIR/monitor/icinga-vhost.conf" "$OUTDIR/$MONITOR/etc/apache2/sites-available" - cp -f "$TMPFOLDER/hosts.cfg" "$OUTDIR/$MONITOR/etc/icinga/objects" - cp -f "$TMPFOLDER/hostgroups.cfg" "$OUTDIR/$MONITOR/etc/icinga/objects" - cp -f "$TEMPLATEDIR/monitor/services.cfg" "$OUTDIR/$MONITOR/etc/icinga/objects" - cp -f "$TEMPLATEDIR/monitor/index.html" "$OUTDIR/$MONITOR/var/www" - cp -fR "$TEMPLATEDIR/monitor/images" "$OUTDIR/$MONITOR/var/www" - sed -i "s^CLUSTER_DOMAIN_NAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$MONITOR/etc/apache2/sites-available/icinga-vhost.conf" - sed -i "s^CLUSTER_DOMAIN_NAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$MONITOR/var/www/index.html" - #cp -f "$TEMPLATEDIR/monitor/commands.cfg" "$OUTDIR/$MONITOR/etc/icinga" - - ### Generate sources.list for apt to install icinga + mkdir -p "$OUTDIR/$MONITOR/etc/icinga/objects" + mkdir -p "$OUTDIR/$MONITOR/etc/apache2/sites-available" + mkdir -p "$OUTDIR/$MONITOR/var/www" + cp -f "$TEMPLATEDIR/monitor/icinga-vhost.conf" "$OUTDIR/$MONITOR/etc/apache2/sites-available" + cp -f "$TMPFOLDER/hosts.cfg" "$OUTDIR/$MONITOR/etc/icinga/objects" + cp -f "$TMPFOLDER/hostgroups.cfg" "$OUTDIR/$MONITOR/etc/icinga/objects" + cp -f "$TEMPLATEDIR/monitor/services.cfg" "$OUTDIR/$MONITOR/etc/icinga/objects" + cp -f "$TEMPLATEDIR/monitor/index.html" "$OUTDIR/$MONITOR/var/www" + cp -fR "$TEMPLATEDIR/monitor/images" "$OUTDIR/$MONITOR/var/www" + sed -i "s^CLUSTER_DOMAIN_NAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$MONITOR/etc/apache2/sites-available/icinga-vhost.conf" + sed -i "s^CLUSTER_DOMAIN_NAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$MONITOR/var/www/index.html" + #cp -f "$TEMPLATEDIR/monitor/commands.cfg" "$OUTDIR/$MONITOR/etc/icinga" + + ### Generate sources.list for apt to install icinga #mkdir -p "${OUTDIR}/${MONITOR}/etc/apt/sources.list.d/" - echo '### Generated by GenaSYS' >> "${TMPFOLDER}/icinga_ppa.list" + echo '### Generated by GenaSYS' >> "${TMPFOLDER}/icinga_ppa.list" echo "#PPA for Icinga monitoring for Evergreen" >> "${TMPFOLDER}/icinga_ppa.list" echo "deb http://ppa.launchpad.net/formorer/icinga/ubuntu $UBUNTU_CODENAME main" >> "${TMPFOLDER}/icinga_ppa.list" echo "deb-src http://ppa.launchpad.net/formorer/icinga/ubuntu $UBUNTU_CODENAME main" >> "${TMPFOLDER}/icinga_ppa.list" @@ -3007,16 +3015,16 @@ echo '#/bin/bash' >>$TMPSETUPMONITOR echo sed -i \'s^allowed_hosts=127.0.0.1^#allowed_hosts=127.0.0.1^g\' "/etc/nagios/nrpe.cfg" >>$TMPSETUPMONITOR for NAGINODE in ${MACHINES_MONITOR} do - MONITOR_SERVER=$( echo "${NAGINODE}" | tr '[:lower:]' '[:upper:]' ) - ### remove prefix ${MONITOR_SERVER#*-} - #echo ${MACHINES_MONITOR#*-} - THIS_MONITOR_SERVER_IP=$(eval echo \$${MONITOR_SERVER#*-}_IP) ## strip prefix - if [ -z "$MONITOR_SERVER_IP_LIST" ] - then - MONITOR_SERVER_IP_LIST="$THIS_MONITOR_SERVER_IP 127.0.0.1" - else - MONITOR_SERVER_IP_LIST="$MONITOR_SERVER_IP_LIST $THIS_MONITOR_SERVER_IP 127.0.0.1" - fi + MONITOR_SERVER=$( echo "${NAGINODE}" | tr '[:lower:]' '[:upper:]' ) + ### remove prefix ${MONITOR_SERVER#*-} + #echo ${MACHINES_MONITOR#*-} + THIS_MONITOR_SERVER_IP=$(eval echo \$${MONITOR_SERVER#*-}_IP) ## strip prefix + if [ -z "$MONITOR_SERVER_IP_LIST" ] + then + MONITOR_SERVER_IP_LIST="$THIS_MONITOR_SERVER_IP 127.0.0.1" + else + MONITOR_SERVER_IP_LIST="$MONITOR_SERVER_IP_LIST $THIS_MONITOR_SERVER_IP 127.0.0.1" + fi done printf "echo \"allowed_hosts=${MONITOR_SERVER_IP_LIST// /,}\" >> /etc/nagios/nrpe.cfg\n" >>$TMPSETUPMONITOR echo sed -i \'s^dont_blame_nrpe=0^dont_blame_nrpe=1^g\' "/etc/nagios/nrpe.cfg" >>$TMPSETUPMONITOR @@ -3039,51 +3047,51 @@ chmod 755 $TMPSETUPMONITOR for MUNINODE in ${MACHINES_NO_BRICKS} #for MUNINODE in ${ALL_MACHINES_LIST} do - MUNIN_HOST=$( echo "${MUNINODE}" | tr '[:lower:]' '[:upper:]' ) - MUNIN_CFG_FILE="${OUTDIR}/${MUNINODE}/etc/munin/munin-node.conf" - mkdir -p "${OUTDIR}/${MUNINODE}/etc/munin" - mkdir -p "${OUTDIR}/${MUNINODE}/var/run/munin" - cp -f ${TEMPLATEDIR}/monitor/munin-node.conf "${MUNIN_CFG_FILE}" + MUNIN_HOST=$( echo "${MUNINODE}" | tr '[:lower:]' '[:upper:]' ) + MUNIN_CFG_FILE="${OUTDIR}/${MUNINODE}/etc/munin/munin-node.conf" + mkdir -p "${OUTDIR}/${MUNINODE}/etc/munin" + mkdir -p "${OUTDIR}/${MUNINODE}/var/run/munin" + cp -f ${TEMPLATEDIR}/monitor/munin-node.conf "${MUNIN_CFG_FILE}" #echo "### Generated by GenaSYS $_VERSION for Evergreen $EG_VER" >> ${MUNIN_CFG_FILE} - #echo "host_name ${MUNINODE}.${CLUSTERDOMAINNAME}" >> ${MUNIN_CFG_FILE} - sed -i "s^MONITORED_NODENAME.CLUSTER_DOMAIN_NAME^${MUNINODE}.${CLUSTERDOMAINNAME}^g" ${MUNIN_CFG_FILE} - printf "allow ${MONITOR01_IP}\n" >> ${MUNIN_CFG_FILE} - printf "allow ${MONITOR02_IP}\n" >> ${MUNIN_CFG_FILE} - #if echo $MUNINODE | grep -q lvs0 - #then - # eval echo -e "host \$${MUNIN_HOST#*-}_PRIVATE_IP \# Host IP address" >> ${MUNIN_CFG_FILE} - #else - # eval echo -e "host \$${MUNIN_HOST#*-}_IP \# Host IP address" >> ${MUNIN_CFG_FILE} - #fi + #echo "host_name ${MUNINODE}.${CLUSTERDOMAINNAME}" >> ${MUNIN_CFG_FILE} + sed -i "s^MONITORED_NODENAME.CLUSTER_DOMAIN_NAME^${MUNINODE}.${CLUSTERDOMAINNAME}^g" ${MUNIN_CFG_FILE} + printf "allow ${MONITOR01_IP}\n" >> ${MUNIN_CFG_FILE} + printf "allow ${MONITOR02_IP}\n" >> ${MUNIN_CFG_FILE} + #if echo $MUNINODE | grep -q lvs0 + #then + # eval echo -e "host \$${MUNIN_HOST#*-}_PRIVATE_IP \# Host IP address" >> ${MUNIN_CFG_FILE} + #else + # eval echo -e "host \$${MUNIN_HOST#*-}_IP \# Host IP address" >> ${MUNIN_CFG_FILE} + #fi done ## Build munin.conf for monitor servers. for MUNINODE in ${MACHINES_NO_BRICKS} #for MUNINODE in ${ALL_MACHINES_LIST} do - MUNIN_HOST=$( echo "${MUNINODE}" | tr '[:lower:]' '[:upper:]' ) - echo "[${CLUSTERDOMAINNAME};${MUNINODE}.${CLUSTERDOMAINNAME}]" >> $TMPMUNINCONF - if echo $MUNINODE | grep -q lvs0 - then - #eval echo -e "\\\taddress \$${MUNIN_HOST#*-}_PRIVATE_IP" >> $TMPMUNINCONF - eval echo -e "\\\taddress ${MUNINODE}.${CLUSTERDOMAINNAME}" >> $TMPMUNINCONF - else - #eval echo -e "\\\taddress \$${MUNIN_HOST#*-}_IP" >> $TMPMUNINCONF - eval echo -e "\\\taddress ${MUNINODE}.${CLUSTERDOMAINNAME}" >> $TMPMUNINCONF - fi - #echo -e "\thost_name ${MUNINODE}.${CLUSTERDOMAINNAME}" >> $TMPMUNINCONF - echo >> $TMPMUNINCONF + MUNIN_HOST=$( echo "${MUNINODE}" | tr '[:lower:]' '[:upper:]' ) + echo "[${CLUSTERDOMAINNAME};${MUNINODE}.${CLUSTERDOMAINNAME}]" >> $TMPMUNINCONF + if echo $MUNINODE | grep -q lvs0 + then + #eval echo -e "\\\taddress \$${MUNIN_HOST#*-}_PRIVATE_IP" >> $TMPMUNINCONF + eval echo -e "\\\taddress ${MUNINODE}.${CLUSTERDOMAINNAME}" >> $TMPMUNINCONF + else + #eval echo -e "\\\taddress \$${MUNIN_HOST#*-}_IP" >> $TMPMUNINCONF + eval echo -e "\\\taddress ${MUNINODE}.${CLUSTERDOMAINNAME}" >> $TMPMUNINCONF + fi + #echo -e "\thost_name ${MUNINODE}.${CLUSTERDOMAINNAME}" >> $TMPMUNINCONF + echo >> $TMPMUNINCONF done ## copy munin.conf and apache2 munin vhost to monitor servers. for MONITOR in ${MACHINES_MONITOR} do - mkdir -p "$OUTDIR/$MONITOR/etc/munin" - mkdir -p "$OUTDIR/$MONITOR/etc/apache2/sites-available" - mkdir -p "$OUTDIR/$MONITOR/etc/apache2/conf.d" - cp -f "$TEMPLATEDIR/monitor/munin-apache2.conf" "$OUTDIR/$MONITOR/etc/apache2/conf.d" - cp -f "$TMPMUNINCONF" "$OUTDIR/$MONITOR/etc/munin" - cp -f "$TEMPLATEDIR/monitor/munin-vhost.conf" "$OUTDIR/$MONITOR/etc/apache2/sites-available" - sed -i "s^CLUSTER_DOMAIN_NAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$MONITOR/etc/apache2/sites-available/munin-vhost.conf" + mkdir -p "$OUTDIR/$MONITOR/etc/munin" + mkdir -p "$OUTDIR/$MONITOR/etc/apache2/sites-available" + mkdir -p "$OUTDIR/$MONITOR/etc/apache2/conf.d" + cp -f "$TEMPLATEDIR/monitor/munin-apache2.conf" "$OUTDIR/$MONITOR/etc/apache2/conf.d" + cp -f "$TMPMUNINCONF" "$OUTDIR/$MONITOR/etc/munin" + cp -f "$TEMPLATEDIR/monitor/munin-vhost.conf" "$OUTDIR/$MONITOR/etc/apache2/sites-available" + sed -i "s^CLUSTER_DOMAIN_NAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$MONITOR/etc/apache2/sites-available/munin-vhost.conf" done @@ -3212,25 +3220,25 @@ sed -i "s^vandelay_MAX^50^g" openils/conf/opensrf.xml PkgFiles () { ### Package All files. for FOLDER in $(ls -d */) do - WORK_DIR="$(echo -e ${FOLDER%/*})" - printf " |\r";sleep 0.05; printf " /\r";sleep 0.05; printf -- ' - \r';sleep 0.05; printf ' \\\r' + WORK_DIR="$(echo -e ${FOLDER%/*})" + printf " |\r";sleep 0.05; printf " /\r";sleep 0.05; printf -- ' - \r';sleep 0.05; printf ' \\\r' cd $(echo -e ${FOLDER%/*}) - #pushd $(echo -e ${FOLDER%/*}) - if echo $WORK_DIR |grep -q reporter0 || \ - echo $WORK_DIR |grep -q utility0 || \ - echo $WORK_DIR |grep -q sip0 - then - cp $TMPOPENSRF_XML openils/conf/opensrf.xml - Optimize_OpenSRF - fi + #pushd $(echo -e ${FOLDER%/*}) + if echo $WORK_DIR |grep -q reporter0 || \ + echo $WORK_DIR |grep -q utility0 || \ + echo $WORK_DIR |grep -q sip0 + then + cp $TMPOPENSRF_XML openils/conf/opensrf.xml + Optimize_OpenSRF + fi tar --owner=root --group=root -zcf ../$(echo -e ${FOLDER%/*}).tar.gz * - [ -e etc/hosts ] && tar --owner=root --group=root -zcf ../$(echo -e ${FOLDER%/*})_etc-hosts.tar.gz etc/hosts + [ -e etc/hosts ] && tar --owner=root --group=root -zcf ../$(echo -e ${FOLDER%/*})_etc-hosts.tar.gz etc/hosts cd .. - #popd + #popd if test -e brick0[1-9].tar.gz ; then rm brick0[1-9].tar.gz ; fi - if test -e brick0[1-9]_etc-hosts.tar.gz ; then rm brick0[1-9]_etc-hosts.tar.gz ; fi + if test -e brick0[1-9]_etc-hosts.tar.gz ; then rm brick0[1-9]_etc-hosts.tar.gz ; fi [ -e "$(echo -e ${FOLDER%/*}).tar.gz" ] && mv $(echo -e ${FOLDER%/*}).tar.gz $(echo -e ${FOLDER%/*}) - [ -e "$(echo -e ${FOLDER%/*})_etc-hosts.tar.gz" ] && mv $(echo -e ${FOLDER%/*})_etc-hosts.tar.gz $(echo -e ${FOLDER%/*}) + [ -e "$(echo -e ${FOLDER%/*})_etc-hosts.tar.gz" ] && mv $(echo -e ${FOLDER%/*})_etc-hosts.tar.gz $(echo -e ${FOLDER%/*}) done printf " " } @@ -3240,75 +3248,73 @@ printf " " PkgBricks () { ### Create setup packages for the bricks. for FOLDER in $(ls -d *brick*) do - cd $FOLDER - for SUBFOLDER in $(ls -d *) - do - printf " |\r";sleep 0.05; printf " /\r";sleep 0.05; printf -- ' - \r';sleep 0.05; printf ' \\\r' - cd $SUBFOLDER - cp $TMPOPENSRF_XML openils/conf/opensrf.xml - Optimize_Brick_OpenSRF - mkdir ../setup_${SUBFOLDER} - mv ${SUBFOLDER}_apt.list ../setup_${SUBFOLDER} - cp $TMPFOLDER/debconf-settings ../setup_${SUBFOLDER} - mkdir -p ../setup_${SUBFOLDER}/monitoring - cp $TMPSETUPMONITOR ../setup_${SUBFOLDER}/monitoring - cp $TEMPLATEDIR/monitor/check_cpu.sh ../setup_${SUBFOLDER}/monitoring - cp $TEMPLATEDIR/monitor/nrpe_local.cfg ../setup_${SUBFOLDER}/monitoring - cp $TEMPLATEDIR/monitor/reporter_status.sh ../setup_${SUBFOLDER}/monitoring - cp $TEMPLATEDIR/monitor/check_nfs.sh ../setup_${SUBFOLDER}/monitoring - cp $TEMPLATEDIR/monitor/check_lock ../setup_${SUBFOLDER}/monitoring - cp $TEMPLATEDIR/monitor/check_file_age ../setup_${SUBFOLDER}/monitoring - cp $TEMPLATEDIR/monitor/check_freemem ../setup_${SUBFOLDER}/monitoring - cp $TEMPLATEDIR/monitor/check_memcached.pl ../setup_${SUBFOLDER}/monitoring - cp $TEMPLATEDIR/monitor/check_postgres.pl ../setup_${SUBFOLDER}/monitoring - cp $TEMPLATEDIR/monitor/check_cpu.sh ../setup_${SUBFOLDER}/monitoring - cp $TEMPLATEDIR/monitor/check_osrf ../setup_${SUBFOLDER}/monitoring - #cp -r $TEMPLATEDIR/apache2/websockets ../setup_${SUBFOLDER} - touch ../setup_${SUBFOLDER}/.osrf_node - sed -i "s^HOSTNAME^${SUBFOLDER}^g" ../setup_${SUBFOLDER}/debconf-settings - - [ "${INSTALL_MASTER_FROM_GIT}" = "n" ] && cp -R $TEMPLATEDIR/debs ../setup_${SUBFOLDER} - if [ -e "${SUBFOLDER}_drones.txt" ] - then - mv ${SUBFOLDER}_drones.txt ../setup_${SUBFOLDER} - fi - if echo ${SUBFOLDER} | grep -q head - then - cp -f $TEMPLATEDIR/setup_brick_to_drone_sshkeys.sh ../setup_${SUBFOLDER}/setup_${SUBFOLDER}_to_drone_sshkeys.sh - #cp -f $TEMPLATEDIR/db/eg_db_config.pl ../setup_${SUBFOLDER} - [ -e "${CUSTOMDIR}/lib_ips.txt" ] && cp "${CUSTOMDIR}/lib_ips.txt" ../setup_${SUBFOLDER} - [ -e "${CUSTOMDIR}/kpac.xml" ] && cp "${CUSTOMDIR}/kpac.xml" ../setup_${SUBFOLDER} - sed -i "s^brick_drones.txt^${SUBFOLDER}_drones.txt^g" ../setup_${SUBFOLDER}/setup_${SUBFOLDER}_to_drone_sshkeys.sh - sed -i "s^MASTER_DB^$MASTER_DB^g" setup-head.sh - sed -i "s^EG_DB_USER^$DB_USERNAME^g" setup-head.sh - sed -i "s^EG_DB_PASSWORD^$DATABASE_PASSWORD^g" setup-head.sh - sed -i "s^EG_ADMIN_USER^$EG_ADMIN_USER^g" setup-head.sh - sed -i "s^EG_ADMIN_PASS^$(echo $EG_ADMIN_PASSWORD | sed -e 's^&^\\\&^g' -e 's/\^/\\\^/g')^g" setup-head.sh - sed -i "s^MEMCACHE01_IP^$MEMCACHE01_IP^g" setup-head.sh - if [[ "$USE_NOVELIST" == "y" || "$USE_NOVELIST" == "Y" ]] - then - echo "NOVELIST_PROFILE=${NOVELIST_PROFILE}" > ../setup_${SUBFOLDER}/.Novelist.txt - echo "NOVELIST_PASSWORD=${NOVELIST_PASSWORD}" >> ../setup_${SUBFOLDER}/.Novelist.txt - chmod 600 ../setup_${SUBFOLDER}/.Novelist.txt - fi - if [[ "$USE_SYNDETICS" == "y" || "$USE_SYNDETICS" == "Y" ]] + cd $FOLDER + for SUBFOLDER in $(ls -d *) + do + printf " |\r";sleep 0.05; printf " /\r";sleep 0.05; printf -- ' - \r';sleep 0.05; printf ' \\\r' + cd $SUBFOLDER + cp $TMPOPENSRF_XML openils/conf/opensrf.xml + Optimize_Brick_OpenSRF + mkdir ../setup_${SUBFOLDER} + mv ${SUBFOLDER}_apt.list ../setup_${SUBFOLDER} + cp $TMPFOLDER/debconf-settings ../setup_${SUBFOLDER} + mkdir -p ../setup_${SUBFOLDER}/monitoring + cp $TMPSETUPMONITOR ../setup_${SUBFOLDER}/monitoring + cp $TEMPLATEDIR/monitor/check_cpu.sh ../setup_${SUBFOLDER}/monitoring + cp $TEMPLATEDIR/monitor/nrpe_local.cfg ../setup_${SUBFOLDER}/monitoring + cp $TEMPLATEDIR/monitor/reporter_status.sh ../setup_${SUBFOLDER}/monitoring + cp $TEMPLATEDIR/monitor/check_nfs.sh ../setup_${SUBFOLDER}/monitoring + cp $TEMPLATEDIR/monitor/check_lock ../setup_${SUBFOLDER}/monitoring + cp $TEMPLATEDIR/monitor/check_file_age ../setup_${SUBFOLDER}/monitoring + cp $TEMPLATEDIR/monitor/check_freemem ../setup_${SUBFOLDER}/monitoring + cp $TEMPLATEDIR/monitor/check_memcached.pl ../setup_${SUBFOLDER}/monitoring + cp $TEMPLATEDIR/monitor/check_postgres.pl ../setup_${SUBFOLDER}/monitoring + cp $TEMPLATEDIR/monitor/check_cpu.sh ../setup_${SUBFOLDER}/monitoring + cp $TEMPLATEDIR/monitor/check_osrf ../setup_${SUBFOLDER}/monitoring + #cp -r $TEMPLATEDIR/apache2/websockets ../setup_${SUBFOLDER} + touch ../setup_${SUBFOLDER}/.osrf_node + sed -i "s^HOSTNAME^${SUBFOLDER}^g" ../setup_${SUBFOLDER}/debconf-settings + + [ "${INSTALL_MASTER_FROM_GIT}" = "n" ] && cp -R $TEMPLATEDIR/debs ../setup_${SUBFOLDER} + if [ -e "${SUBFOLDER}_drones.txt" ] + then + mv ${SUBFOLDER}_drones.txt ../setup_${SUBFOLDER} + fi + if echo ${SUBFOLDER} | grep -q head + then + cp -f $TEMPLATEDIR/setup_brick_to_drone_sshkeys.sh ../setup_${SUBFOLDER}/setup_${SUBFOLDER}_to_drone_sshkeys.sh + #cp -f $TEMPLATEDIR/db/eg_db_config.pl ../setup_${SUBFOLDER} + [ -e "${CUSTOMDIR}/lib_ips.txt" ] && cp "${CUSTOMDIR}/lib_ips.txt" ../setup_${SUBFOLDER} + [ -e "${CUSTOMDIR}/kpac.xml" ] && cp "${CUSTOMDIR}/kpac.xml" ../setup_${SUBFOLDER} + sed -i "s^brick_drones.txt^${SUBFOLDER}_drones.txt^g" ../setup_${SUBFOLDER}/setup_${SUBFOLDER}_to_drone_sshkeys.sh + sed -i "s^MASTER_DB^$MASTER_DB^g" setup-head.sh + sed -i "s^EG_DB_USER^$DB_USERNAME^g" setup-head.sh + sed -i "s^EG_DB_PASSWORD^$DATABASE_PASSWORD^g" setup-head.sh + sed -i "s^EG_ADMIN_USER^$EG_ADMIN_USER^g" setup-head.sh + sed -i "s^EG_ADMIN_PASS^$(echo $EG_ADMIN_PASSWORD | sed -e 's^&^\\\&^g' -e 's/\^/\\\^/g')^g" setup-head.sh + sed -i "s^MEMCACHE01_IP^$MEMCACHE01_IP^g" setup-head.sh + then + echo "NOVELIST_PROFILE=${NOVELIST_PROFILE}" > ../setup_${SUBFOLDER}/.Novelist.txt + echo "NOVELIST_PASSWORD=${NOVELIST_PASSWORD}" >> ../setup_${SUBFOLDER}/.Novelist.txt + chmod 600 ../setup_${SUBFOLDER}/.Novelist.txt + fi then echo "SYNDETICS_USER_ID=${SYNDETICS_USER_ID}" > ../setup_${SUBFOLDER}/.Syndetics.txt chmod 600 ../setup_${SUBFOLDER}/.Syndetics.txt fi - fi - + fi + #TODO check drone pkging. - cp $TEMPLATEDIR/Net-Z3950-SimpleServer-1.12.tar.gz ../setup_${SUBFOLDER} - mv setup*.sh ../setup_${SUBFOLDER}/setup_${SUBFOLDER}.sh - mv setup-vars ../setup_${SUBFOLDER}/ - mv "setup-functions" ../setup_${SUBFOLDER}/ + cp $TEMPLATEDIR/Net-Z3950-SimpleServer-1.12.tar.gz ../setup_${SUBFOLDER} + mv setup*.sh ../setup_${SUBFOLDER}/setup_${SUBFOLDER}.sh + mv setup-vars ../setup_${SUBFOLDER}/ + mv "setup-functions" ../setup_${SUBFOLDER}/ tar --owner=root --group=root -zcf ../setup_${SUBFOLDER}/${SUBFOLDER}.tar.gz * - tar --owner=root --group=root -zcf ../setup_${SUBFOLDER}/${SUBFOLDER}_etc-hosts.tar.gz etc/hosts - cd .. - tar --owner=root --group=root -zcf setup_${SUBFOLDER}.tar.gz setup_${SUBFOLDER} - rm -rf setup_${SUBFOLDER} - done + tar --owner=root --group=root -zcf ../setup_${SUBFOLDER}/${SUBFOLDER}_etc-hosts.tar.gz etc/hosts + cd .. + tar --owner=root --group=root -zcf setup_${SUBFOLDER}.tar.gz setup_${SUBFOLDER} + rm -rf setup_${SUBFOLDER} + done cd .. done printf " " @@ -3342,16 +3348,16 @@ cp "$TEMPLATEDIR/monitor/check_cpu.sh" "setup_${NODE_FOLDER}/monitoring" if [[ "$USE_HOSTNAME_PREFIX" = "y" || "$USE_HOSTNAME_PREFIX" = "Y" ]] #TODO check this use strip prefix instead then - NODE_FOLDER_NO_PREFIX=$(echo $NODE_FOLDER|awk -F"-" '{ print $2 }') + NODE_FOLDER_NO_PREFIX=$(echo $NODE_FOLDER|awk -F"-" '{ print $2 }') else - NODE_FOLDER_NO_PREFIX=$NODE_FOLDER + NODE_FOLDER_NO_PREFIX=$NODE_FOLDER fi -if [ -e "$TEMPLATEDIR/apt/${NODE_FOLDER_NO_PREFIX}_apt.list" ] #TODO check this use strip prefix instead +if [ -e "$TEMPLATEDIR/apt/${NODE_FOLDER_NO_PREFIX}_apt.list" ] #TODO check this use strip prefix instead then - cp "$TEMPLATEDIR/apt/${NODE_FOLDER_NO_PREFIX}_apt.list" "setup_${NODE_FOLDER}/${NODE_FOLDER}_apt.list" + cp "$TEMPLATEDIR/apt/${NODE_FOLDER_NO_PREFIX}_apt.list" "setup_${NODE_FOLDER}/${NODE_FOLDER}_apt.list" else - cp "$TEMPLATEDIR/apt/apt.list" "setup_${NODE_FOLDER}/${NODE_FOLDER}_apt.list" + cp "$TEMPLATEDIR/apt/apt.list" "setup_${NODE_FOLDER}/${NODE_FOLDER}_apt.list" fi grep -qx ${NODE_FOLDER} "$TMPOSRFNODES" && \ @@ -3364,68 +3370,68 @@ then fi if echo ${NODE_FOLDER} | grep -q db0 then - ### For Bionic - mkdir -p "setup_${NODE_FOLDER}/debs" - cp -f ${TEMPLATEDIR}/debs/libmarc-charset-perl*.deb "setup_${NODE_FOLDER}/debs" - cp -f ${TEMPLATEDIR}/debs/libmarc-xml-perl*.deb "setup_${NODE_FOLDER}/debs" - ### End for Bionic - cp -f "$TMPOSRFNODES" "setup_${NODE_FOLDER}/opensrf_nodes.txt" - cp -f "$TEMPLATEDIR/setup_sshkeys.sh" "setup_${NODE_FOLDER}" - cp -f "$TEMPLATEDIR/db/create_database_${EG_VERSION}.sql" "setup_${NODE_FOLDER}/create_database.sql" - cp -f "$TEMPLATEDIR/db/eg_db_root.crontab" "setup_${NODE_FOLDER}" - cp -f "$TEMPLATEDIR/db/eg_db_postgres.crontab" "setup_${NODE_FOLDER}" - echo "CREATE ROLE evergreen PASSWORD" \'$DATABASE_PASSWORD\' "SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;" > "setup_${NODE_FOLDER}/create_db_user.sql" + ### For Bionic + mkdir -p "setup_${NODE_FOLDER}/debs" + cp -f ${TEMPLATEDIR}/debs/libmarc-charset-perl*.deb "setup_${NODE_FOLDER}/debs" + cp -f ${TEMPLATEDIR}/debs/libmarc-xml-perl*.deb "setup_${NODE_FOLDER}/debs" + ### End for Bionic + cp -f "$TMPOSRFNODES" "setup_${NODE_FOLDER}/opensrf_nodes.txt" + cp -f "$TEMPLATEDIR/setup_sshkeys.sh" "setup_${NODE_FOLDER}" + cp -f "$TEMPLATEDIR/db/create_database_${EG_VERSION}.sql" "setup_${NODE_FOLDER}/create_database.sql" + cp -f "$TEMPLATEDIR/db/eg_db_root.crontab" "setup_${NODE_FOLDER}" + cp -f "$TEMPLATEDIR/db/eg_db_postgres.crontab" "setup_${NODE_FOLDER}" + echo "CREATE ROLE evergreen PASSWORD" \'$DATABASE_PASSWORD\' "SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;" > "setup_${NODE_FOLDER}/create_db_user.sql" fi if echo ${NODE_FOLDER} | grep -q utility0 then - cp -f "$TMPOSRFNODES" "setup_${NODE_FOLDER}/opensrf_nodes.txt" - cp -f "$TEMPLATEDIR/setup_sshkeys.sh" "setup_${NODE_FOLDER}" - cp -f "$TEMPLATEDIR/utility/utility_head_ssh_keys.sh" "setup_${NODE_FOLDER}" - cp -f "$TEMPLATEDIR/.GenaSYS_FirstRun" "setup_${NODE_FOLDER}" - cp -f "$TEMPLATEDIR/utility/opensrf-crontab" "setup_${NODE_FOLDER}" - cp -f "$TEMPLATEDIR/Net-Z3950-SimpleServer-1.12.tar.gz" "setup_${NODE_FOLDER}" - for BRICKHEAD in ${BRICKHEADLIST} - do - echo "$BRICKHEAD" >> "setup_${NODE_FOLDER}/brickhead_nodes.txt" - done - #cp -rf "$TEMPLATEDIR/apache2/websockets" "setup_${NODE_FOLDER}" + cp -f "$TMPOSRFNODES" "setup_${NODE_FOLDER}/opensrf_nodes.txt" + cp -f "$TEMPLATEDIR/setup_sshkeys.sh" "setup_${NODE_FOLDER}" + cp -f "$TEMPLATEDIR/utility/utility_head_ssh_keys.sh" "setup_${NODE_FOLDER}" + cp -f "$TEMPLATEDIR/.GenaSYS_FirstRun" "setup_${NODE_FOLDER}" + cp -f "$TEMPLATEDIR/utility/opensrf-crontab" "setup_${NODE_FOLDER}" + cp -f "$TEMPLATEDIR/Net-Z3950-SimpleServer-1.12.tar.gz" "setup_${NODE_FOLDER}" + for BRICKHEAD in ${BRICKHEADLIST} + do + echo "$BRICKHEAD" >> "setup_${NODE_FOLDER}/brickhead_nodes.txt" + done + #cp -rf "$TEMPLATEDIR/apache2/websockets" "setup_${NODE_FOLDER}" fi if echo ${NODE_FOLDER} | grep -q sip0 then - cp -f "$TEMPLATEDIR/Net-Z3950-SimpleServer-1.12.tar.gz" "setup_${NODE_FOLDER}" - #cp -rf "$TEMPLATEDIR/apache2/websockets" "setup_${NODE_FOLDER}" - [ -e "${TMPFOLDER}/oils_sip.xml" ] && cp -f "${TMPFOLDER}/oils_sip.xml" "setup_${NODE_FOLDER}" + cp -f "$TEMPLATEDIR/Net-Z3950-SimpleServer-1.12.tar.gz" "setup_${NODE_FOLDER}" + #cp -rf "$TEMPLATEDIR/apache2/websockets" "setup_${NODE_FOLDER}" + [ -e "${TMPFOLDER}/oils_sip.xml" ] && cp -f "${TMPFOLDER}/oils_sip.xml" "setup_${NODE_FOLDER}" fi if echo ${NODE_FOLDER} | grep -q reporter0 then - cp -f "$TEMPLATEDIR/Net-Z3950-SimpleServer-1.12.tar.gz" "setup_${NODE_FOLDER}" + cp -f "$TEMPLATEDIR/Net-Z3950-SimpleServer-1.12.tar.gz" "setup_${NODE_FOLDER}" fi if echo ${NODE_FOLDER} | grep -q lvs0 then - cp -f $TEMPLATEDIR/lvs/ldirector*.deb "setup_${NODE_FOLDER}" - Prep_Postfix ${NODE_FOLDER} - mv -f $TMPFOLDER/postfix.debconf "setup_${NODE_FOLDER}" + cp -f $TEMPLATEDIR/lvs/ldirector*.deb "setup_${NODE_FOLDER}" + Prep_Postfix ${NODE_FOLDER} + mv -f $TMPFOLDER/postfix.debconf "setup_${NODE_FOLDER}" fi if echo ${NODE_FOLDER} | grep -q monitor0 then - Prep_Postfix ${NODE_FOLDER} - mv -f $TMPFOLDER/postfix.debconf "setup_${NODE_FOLDER}" - mkdir "setup_${NODE_FOLDER}/Icinga-Nagios" - mkdir "setup_${NODE_FOLDER}/Munin" - cp -f "$TEMPLATEDIR/monitor/commands.cfg" "setup_${NODE_FOLDER}/Icinga-Nagios" - cp -f "$TMPFOLDER/hosts.cfg" "setup_${NODE_FOLDER}/Icinga-Nagios" + Prep_Postfix ${NODE_FOLDER} + mv -f $TMPFOLDER/postfix.debconf "setup_${NODE_FOLDER}" + mkdir "setup_${NODE_FOLDER}/Icinga-Nagios" + mkdir "setup_${NODE_FOLDER}/Munin" + cp -f "$TEMPLATEDIR/monitor/commands.cfg" "setup_${NODE_FOLDER}/Icinga-Nagios" + cp -f "$TMPFOLDER/hosts.cfg" "setup_${NODE_FOLDER}/Icinga-Nagios" cp -f "$TMPFOLDER/hostgroups.cfg" "setup_${NODE_FOLDER}/Icinga-Nagios" cp -f "$TEMPLATEDIR/monitor/services.cfg" "setup_${NODE_FOLDER}/Icinga-Nagios" - cp -f "$TEMPLATEDIR/monitor/check_hpacucli" "setup_${NODE_FOLDER}/Icinga-Nagios" - cp -f "$TEMPLATEDIR/monitor/check_hpasm" "setup_${NODE_FOLDER}/Icinga-Nagios" - cp -f "${TMPFOLDER}/icinga_ppa.list" "setup_${NODE_FOLDER}/Icinga-Nagios" - cp -f "$TEMPLATEDIR/monitor/extinfo_icinga.cfg" "setup_${NODE_FOLDER}/Icinga-Nagios" - cp -f "$TEMPLATEDIR/monitor/munin-cron.crontab" "setup_${NODE_FOLDER}/Munin" - cp -f "$TEMPLATEDIR/icinga.debconf" "setup_${NODE_FOLDER}/.icinga.debconf" - echo "$MONITOR_ADMIN_PASSWORD" > "setup_${NODE_FOLDER}/.munin_admin_password" - chmod 700 "setup_${NODE_FOLDER}/.munin_admin_password" - chmod 700 "setup_${NODE_FOLDER}/.munin_admin_password" - sed -i "s^MONITOR_PW^${MONITOR_ADMIN_PASSWORD}^g" "setup_${NODE_FOLDER}/.icinga.debconf" + cp -f "$TEMPLATEDIR/monitor/check_hpacucli" "setup_${NODE_FOLDER}/Icinga-Nagios" + cp -f "$TEMPLATEDIR/monitor/check_hpasm" "setup_${NODE_FOLDER}/Icinga-Nagios" + cp -f "${TMPFOLDER}/icinga_ppa.list" "setup_${NODE_FOLDER}/Icinga-Nagios" + cp -f "$TEMPLATEDIR/monitor/extinfo_icinga.cfg" "setup_${NODE_FOLDER}/Icinga-Nagios" + cp -f "$TEMPLATEDIR/monitor/munin-cron.crontab" "setup_${NODE_FOLDER}/Munin" + cp -f "$TEMPLATEDIR/icinga.debconf" "setup_${NODE_FOLDER}/.icinga.debconf" + echo "$MONITOR_ADMIN_PASSWORD" > "setup_${NODE_FOLDER}/.munin_admin_password" + chmod 700 "setup_${NODE_FOLDER}/.munin_admin_password" + chmod 700 "setup_${NODE_FOLDER}/.munin_admin_password" + sed -i "s^MONITOR_PW^${MONITOR_ADMIN_PASSWORD}^g" "setup_${NODE_FOLDER}/.icinga.debconf" fi sed -i "s^tar_file^$NODE_FOLDER^g" "setup_${NODE_FOLDER}/setup_$NODE_FOLDER.sh" sed -i "s^_EGVER^$EG_VERSION^g" "setup_${NODE_FOLDER}/setup_$NODE_FOLDER.sh" @@ -3451,19 +3457,19 @@ PkgFiles #All except bricks. #for NODE_FOLDER in lvs01 lvs02 db01 db02 db03 logger01 utility01 sip01 sip02 reporter01 memcache01 memcache02 monitor01 backup01 admin01 for NODE_FOLDER in $MACHINES_NO_BRICKS - do - PkgOthers - printf '. \r' + do + PkgOthers + printf '. \r' done # We package any extra (dynamic) host here because of conflicts. if [ "$ADD_REPORTS_SHARE" = "1" ] then - printf " \n" - echo -e $COL_RESET packaging ${REPORTS_NFS_HOSTNAME} - NODE_FOLDER="${REPORTS_NFS_HOSTNAME}" - PkgOthers - printf '. \r' + printf " \n" + echo -e $COL_RESET packaging ${REPORTS_NFS_HOSTNAME} + NODE_FOLDER="${REPORTS_NFS_HOSTNAME}" + PkgOthers + printf '. \r' fi @@ -3480,10 +3486,10 @@ echo -e "Install in the order listed below." #echo -e $COL_RESET echo if echo $REPORTS_NFS_HOSTNAME | grep -q reporter - then - echo -e $COL_BR_GREEN" lvs logger backup db memcache reporter brick01-head other-bricks sip utility monitor" $COL_RESET - else - echo -e $COL_BR_GREEN" lvs logger backup $REPORTS_NFS_HOSTNAME db memcache brick01-head other-bricks reporter sip utility monitor" $COL_RESET + then + echo -e $COL_BR_GREEN" lvs logger backup db memcache reporter brick01-head other-bricks sip utility monitor" $COL_RESET + else + echo -e $COL_BR_GREEN" lvs logger backup $REPORTS_NFS_HOSTNAME db memcache brick01-head other-bricks reporter sip utility monitor" $COL_RESET fi echo echo -e $COL_BR_YELLOW"_________________________________________________________________________"$COL_RESET diff --git a/templates/apache2/eg_startup b/templates/apache2/eg_startup deleted file mode 100755 index 0e434a4..0000000 --- a/templates/apache2/eg_startup +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/perl -use OpenSRF::AppSession; - -# default ingress value for all Apache/mod_perl clients -OpenSRF::AppSession->ingress('apache'); - -use OpenILS::WWW::Exporter qw( /openils/conf/opensrf_core.xml ); -use OpenILS::WWW::SuperCat qw( /openils/conf/opensrf_core.xml ); -use OpenILS::WWW::AddedContent qw( /openils/conf/opensrf_core.xml ); -use OpenILS::WWW::Proxy ('/openils/conf/opensrf_core.xml'); -use OpenILS::WWW::Vandelay qw( /openils/conf/opensrf_core.xml ); -use OpenILS::WWW::TemplateBatchBibUpdate qw( /openils/conf/opensrf_core.xml ); -use OpenILS::WWW::EGWeb ('/openils/conf/opensrf_core.xml', 'OpenILS::WWW::EGCatLoader', 'en_us');; -use OpenILS::WWW::IDL2js ('/openils/conf/opensrf_core.xml'); -use OpenILS::WWW::FlatFielder; -use OpenILS::WWW::PhoneList ('/openils/conf/opensrf_core.xml'); -use OpenILS::WWW::RemoteAuth ('/openils/conf/opensrf_core.xml', 'OpenILS::WWW::RemoteAuth::Basic', 'OpenILS::WWW::RemoteAuth::EZProxyCGI', 'OpenILS::WWW::RemoteAuth::PatronAPI'); - -# Pass second argument of '1' to enable template caching. -use OpenILS::WWW::PrintTemplate ('/openils/conf/opensrf_core.xml', 0); - -# - Uncomment the following 2 lines to make use of the IP redirection code -# - The IP file should to contain a map with the following format: -# - actor.org_unit.shortname -# - e.g. LIB123 10.0.0.1 10.0.0.254 - -#use OpenILS::WWW::Redirect qw(/openils/conf/opensrf_core.xml); -#OpenILS::WWW::Redirect->parse_ips_file('/openils/conf/lib_ips.txt'); - - -1; - diff --git a/templates/apache2/eg_vhost.conf b/templates/apache2/eg_vhost.conf new file mode 100644 index 0000000..fbe7a57 --- /dev/null +++ b/templates/apache2/eg_vhost.conf @@ -0,0 +1,996 @@ +# ---------------------------------------------------------------------------------- +# This is the global Evergreen virtual host config. Anything you want published +# through all virtual hosts (port 80, port 443, etc.) should live in here. +# ---------------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------------- +# Point / to the opac - if you have a custom skin or locale, point at it here +# ---------------------------------------------------------------------------------- +#RewriteRule ^/$ %{REQUEST_SCHEME}://%{HTTP_HOST}/eg/opac/home [R=301,L] + +# ---------------------------------------------------------------------------------- +# Redirect staff to the correct URL if they forget to include the final / +# ---------------------------------------------------------------------------------- +RewriteRule ^/eg/staff$ https://%{HTTP_HOST}/eg/staff/ [R=301,L] +RewriteRule ^/eg/staff/$ https://%{HTTP_HOST}/eg2/en-US/staff/ [R=301,L] +RewriteRule ^/eg/staff/splash$ https://%{HTTP_HOST}/eg2/staff/splash [R=301,L] + +# ---------------------------------------------------------------------------------- +# Point / to the IP address redirector +# ---------------------------------------------------------------------------------- + + SetHandler perl-script + PerlHandler OpenILS::WWW::Redirect + Options +ExecCGI + PerlSendHeader On + #PerlSetVar OILSRedirectSkin "default" + # OILSRedirectDepth defaults to the depth of the branch that the OPAC was directed to + #PerlSetVar OILSRedirectDepth "0" + #PerlSetVar OILSRedirectLocale "en-US" + # Use the template-toolkit opac + PerlSetVar OILSRedirectTpac "true" + allow from all + + + +# ---------------------------------------------------------------------------------- +# Assign a default locale to the accessible OPAC +# ---------------------------------------------------------------------------------- +RewriteRule ^/opac/extras/slimpac/start.html$ %{REQUEST_SCHEME}://%{HTTP_HOST}/opac/en-US/extras/slimpac/start.html [R=301,L] +RewriteRule ^/opac/extras/slimpac/advanced.html$ %{REQUEST_SCHEME}://%{HTTP_HOST}/opac/en-US/extras/slimpac/advanced.html [R=301,L] + +# ---------------------------------------------------------------------------------- +# Configure the gateway and translator +# ---------------------------------------------------------------------------------- +OSRFGatewayConfig /openils/conf/opensrf_core.xml +OSRFTranslatorConfig /openils/conf/opensrf_core.xml +# Translator memcache server. Default is localhost +OSRFTranslatorCacheServer MEMCACHE01_IP:11211 + + +# ---------------------------------------------------------------------------------- +# Added content plugin +# ---------------------------------------------------------------------------------- + + SetHandler perl-script + PerlHandler OpenILS::WWW::AddedContent + Options +ExecCGI + PerlSendHeader On + Require all granted + + +# Lock clearing cache down to STAFF_LOGIN + + PerlAccessHandler OpenILS::WWW::AccessHandler + PerlSetVar OILSAccessHandlerPermission "STAFF_LOGIN" + + +# Autosuggest for searches + + SetHandler perl-script + PerlHandler OpenILS::WWW::AutoSuggest + PerlSendHeader On + Require all granted + + +# Flattener service + + SetHandler perl-script + PerlHandler OpenILS::WWW::FlatFielder + PerlSendHeader On + Require all granted + + +# ---------------------------------------------------------------------------------- +# Replace broken cover images with a transparent GIF by default +# ---------------------------------------------------------------------------------- +RewriteEngine ON +RewriteRule ^/opac/extras/ac/jacket/(small|medium|large)/$ \ + /opac/images/blank.png [P,L] + + + ErrorDocument 404 /opac/images/blank.png + + +# Uncomment one or more of these to have a "no image" image other than the blank +# image above. + +# Note: There are no default images provided for these, you will need to provide +# your own "no image" image(s). + + + ErrorDocument 404 /opac/images/noimage_small.png + + + + ErrorDocument 404 /opac/images/noimage_medium.png + + + + ErrorDocument 404 /opac/images/noimage_large.png + + +# ---------------------------------------------------------------------------------- +# Add the row ID (RID) and date so we can make unAPI happy +# ---------------------------------------------------------------------------------- +RewriteCond %{QUERY_STRING} (^r|&r)=(\d+) +RewriteRule . - [E=OILS_OPAC_RID:%2,E=OILS_TIME_YEAR:%{TIME_YEAR}] + +# ---------------------------------------------------------------------------------- +# Pull the locale from the URL +# ---------------------------------------------------------------------------------- +RewriteCond %{REQUEST_URI} ^/opac/(.*?)/ +RewriteRule . - [E=locale:%1] + +# ---------------------------------------------------------------------------------- +# Rewrite JSPac->TPac with redirects +# ---------------------------------------------------------------------------------- +# My Account +RewriteRule /opac/[^/]*/skin/default/xml/myopac.xml %{REQUEST_SCHEME}://%{HTTP_HOST}/eg/opac/myopac/main?%{ENV:OILS_JSPAC_SEARCH_TYPE}%{ENV:OILS_JSPAC_SEARCH_TERMS}%{ENV:OILS_JSPAC_SEARCH_LOCATION} [NE,R,L] + +# -----------------------------------------------------------------------------$ +# Force HTTPS for /eg/circ/selfcheck +# -----------------------------------------------------------------------------$ +RewriteCond %{HTTPS} off +RewriteRule ^(/eg/circ/selfcheck) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L] + +# -----------------------------------------------------------------------------$ +# Force HTTPS for quick reports +# -----------------------------------------------------------------------------$ +RewriteCond %{HTTPS} off +RewriteRule ^(/report-creator) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L] + +# ---------------------------------------------------------------------------------- +# For sanity reasons, default indexes to Off +# ---------------------------------------------------------------------------------- +Options -Indexes + +# ---------------------------------------------------------------------------------- +# Configure the OPAC +# ---------------------------------------------------------------------------------- + + SSILegacyExprParser on + AddType application/xhtml+xml .xml + + # - configure mod_xmlent + XMLEntStripPI "yes" + XMLEntEscapeScript "no" + XMLEntStripComments "yes" + XMLEntContentType "text/html; charset=utf-8" + # forces quirks mode which we want for now + XMLEntStripDoctype "yes" + + # - set up the include handlers + Options +Includes + AddOutputFilter INCLUDES .xsl + AddOutputFilter INCLUDES;XMLENT .xml + + SetEnvIf Request_URI ".*" OILS_OPAC_BASE=/opac/ + + # This gives you the option to configure a different host to serve OPAC images from + # Specify the hostname (without protocol) and path to the images. Protocol will + # be determined at runtime + #SetEnvIf Request_URI ".*" OILS_OPAC_IMAGES_HOST=static.example.org/opac/ + + # In addition to loading images from a static host, you can also load CSS and/or + # Javascript from a static host or hosts. Protocol will be determined at runtime + # and/or by configuration options immediately following. + #SetEnvIf Request_URI ".*" OILS_OPAC_CSS_HOST=static.example.org/opac/ + #SetEnvIf Request_URI ".*" OILS_OPAC_JS_HOST=static.example.org/opac/ + + # If you are not able to serve static content via https and + # wish to force http:// (and are comfortable with mixed-content + # warnings in client browsers), set this: + #SetEnvIf Request_URI ".*" OILS_OPAC_STATIC_PROTOCOL=http + + # If you would prefer to fall back to your non-static servers for + # https pages, avoiding mixed-content warnings in client browsers + # and are willing to accept some increased server load, set this: + #SetEnvIf Request_URI ".*" OILS_OPAC_BYPASS_STATIC_FOR_HTTPS=yes + + # Specify a ChiliFresh account to integrate their services with the OPAC + #SetEnv OILS_CHILIFRESH_ACCOUNT + #SetEnv OILS_CHILIFRESH_PROFILE + #SetEnv OILS_CHILIFRESH_URL http://chilifresh.com/on-site/js/evergreen.js + #SetEnv OILS_CHILIFRESH_HTTPS_URL https://secure.chilifresh.com/on-site/js/evergreen.js + + + # Uncomment to force SSL any time a patron is logged in. This protects + # authentication tokens. Left commented out for backwards compat for now. + #SetEnv OILS_OPAC_FORCE_LOGIN_SSL 1 + + # If set, the skin uses the combined JS file at $SKINDIR/js/combined.js + #SetEnv OILS_OPAC_COMBINED_JS 1 + + + + + # ---------------------------------------------------------------------------------- + # Some mod_deflate fun + # ---------------------------------------------------------------------------------- + + SetOutputFilter DEFLATE + + BrowserMatch ^Mozilla/4 gzip-only-text/html + BrowserMatch ^Mozilla/4\.0[678] no-gzip + BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html + + SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary + + + Header append Vary User-Agent env=!dont-vary + + + + + + + # ---------------------------------------------------------------------------------- + # Some mod_deflate fun + # ---------------------------------------------------------------------------------- + + SetOutputFilter DEFLATE + + BrowserMatch ^Mozilla/4 gzip-only-text/html + BrowserMatch ^Mozilla/4\.0[678] no-gzip + BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html + + SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary + + + Header append Vary User-Agent env=!dont-vary + + + + + +# ---------------------------------------------------------------------------------- +# Force SSL on the OPAC's "My Account" page +# ---------------------------------------------------------------------------------- + + SSLRequireSSL + + +RewriteCond %{QUERY_STRING} locale=([^&]*) +RewriteRule ^/opac/[a-z]{2}-[A-Z]{2}/extras/slimpac/(.*)$ %{REQUEST_SCHEME}://%{HTTP_HOST}/opac/%1/extras/slimpac/$1? [redirect] + + AddOutputFilter INCLUDES;XMLENT .html + + +# ---------------------------------------------------------------------------------- +# Run server-side XUL and XHTML through xmlent to load the correct XML entities +# ---------------------------------------------------------------------------------- +RewriteCond %{HTTP:Accept-Language} ^([a-z]{2}-[A-Z]{2})$ +# Default to en-US if we haven't matched a locale of the form xx-YY +RewriteRule .? - [S=4] +RewriteRule ^/xul/ - [E=locale:en-US] +RewriteRule ^/reports/ - [E=locale:en-US] +RewriteRule .? - [E=locale:en-US] +RewriteRule .? - [S=3] +# Otherwise, set our real locale +RewriteRule ^/xul/ - [E=locale:%{HTTP:Accept-Language}] +RewriteRule ^/reports/ - [E=locale:%{HTTP:Accept-Language}] +RewriteRule .? - [E=locale:%{HTTP:Accept-Language}] + + + SSILegacyExprParser on + Options +Includes + XMLEntEscapeScript "no" + XMLEntStripComments "yes" + XMLEntStripPI "yes" + XMLEntStripDoctype "yes" + XMLEntContentType "text/html; charset=utf-8" + AddOutputFilter INCLUDES;XMLENT .xhtml + AddOutputFilter INCLUDES;XMLENT .html + SetEnv no-gzip + Require all granted + + + + + SSILegacyExprParser on + Options +Includes + XMLEntContentType "application/vnd.mozilla.xul+xml" + AddOutputFilter INCLUDES;XMLENT .xul + SetEnv no-gzip + Require all granted + + +# ---------------------------------------------------------------------------------- +# Supercat feeds +# ---------------------------------------------------------------------------------- + + SetHandler perl-script + PerlHandler OpenILS::WWW::SuperCat::oisbn + Options +ExecCGI + PerlSendHeader On + Require all granted + + + SetHandler perl-script + PerlHandler OpenILS::WWW::SuperCat::supercat + Options +ExecCGI + PerlSendHeader On + Require all granted + + + SetHandler perl-script + PerlHandler OpenILS::WWW::SuperCat::unapi + Options +ExecCGI + PerlSendHeader On + Require all granted + + + SetHandler perl-script + PerlHandler OpenILS::WWW::SuperCat::bookbag_feed + Options +ExecCGI + PerlSendHeader On + Require all granted + + + SetHandler perl-script + PerlHandler OpenILS::WWW::SuperCat::opensearch_feed + Options +ExecCGI + PerlSendHeader On + Require all granted + + + SetHandler perl-script + PerlHandler OpenILS::WWW::SuperCat::sru_search + Options +ExecCGI + PerlSendHeader On + Require all granted + + + SetHandler perl-script + PerlHandler OpenILS::WWW::SuperCat::sru_auth_search + Options +ExecCGI + PerlSendHeader On + Require all granted + + + SetHandler perl-script + PerlHandler OpenILS::WWW::SuperCat::changes_feed + Options +ExecCGI + PerlSendHeader On + Require all granted + + + SetHandler perl-script + PerlHandler OpenILS::WWW::SuperCat::string_browse + Options +ExecCGI + PerlSendHeader On + Require all granted + + + SetHandler perl-script + PerlHandler OpenILS::WWW::SuperCat::string_startwith + Options +ExecCGI + PerlSendHeader On + Require all granted + + +# ---------------------------------------------------------------------------------- +# Module for displaying OpenSRF API documentation +# ---------------------------------------------------------------------------------- + + AddOutputFilter INCLUDES .xsl + + +# ---------------------------------------------------------------------------------- +# Module for processing staff-client offline scripts lives here +# ---------------------------------------------------------------------------------- + + AddHandler cgi-script .pl + AllowOverride None + Options +ExecCGI + Require all granted + + + +# ---------------------------------------------------------------------------------- +# XXX Note, it's important to explicitly set the JSON encoding style +# (OSRFGatewayLegacyJSON), since the default encoding style will likely change +# with OpenSRF 1.0 +# ---------------------------------------------------------------------------------- +# OpenSRF JSON legacy gateway +# ---------------------------------------------------------------------------------- + + SetHandler osrf_json_gateway_module + OSRFGatewayLegacyJSON "true" + Require all granted + +# ---------------------------------------------------------------------------------- +# New-style OpenSRF JSON gateway +# ---------------------------------------------------------------------------------- + + SetHandler osrf_json_gateway_module + OSRFGatewayLegacyJSON "false" + Require all granted + + +# ---------------------------------------------------------------------------------- +# OpenSRF-over-HTTP translator +# (http://open-ils.org/dokuwiki/doku.php?id=opensrf_over_http) +# ---------------------------------------------------------------------------------- + +# OPTIONAL: Running the translator behind a proxy requires accessing +# the client IP address via mod_remoteip (sudo a2enmod remoteip). +# Below is a sample configuration for a proxy running on the same +# server and passing the client IP address via the X-Real-IP header. +# +RemoteIPInternalProxy 127.0.0.1/24 +RemoteIPInternalProxy ::1 +RemoteIPHeader X-Real-IP +RemoteIPHeader X-Client-IP + + + SetHandler osrf_http_translator_module + Require all granted + + +# ---------------------------------------------------------------------------------- +# The exporter lives here +# ---------------------------------------------------------------------------------- + + SetHandler perl-script + AuthType Basic + AuthName "Exporter Login" + PerlOptions +GlobalRequest + PerlSetVar OILSProxyPermissions "STAFF_LOGIN" + PerlAuthenHandler OpenILS::WWW::Proxy::Authen + Require valid-user + PerlHandler OpenILS::WWW::Exporter + Options +ExecCGI + PerlSendHeader On + + + + SetHandler perl-script + AuthType Basic + AuthName "Batch Update Login" + PerlOptions +GlobalRequest + PerlSetVar OILSProxyPermissions "STAFF_LOGIN" + PerlAuthenHandler OpenILS::WWW::Proxy::Authen + Require valid-user + PerlHandler OpenILS::WWW::TemplateBatchBibUpdate + PerlSendHeader On + Options +ExecCGI + + + + AuthType Basic + AuthName "Circ Extras Login" + PerlOptions +GlobalRequest + PerlSetVar OILSProxyPermissions "STAFF_LOGIN" + PerlAuthenHandler OpenILS::WWW::Proxy::Authen + Require valid-user + Options +ExecCGI + PerlSendHeader On + + + + SetHandler perl-script + AuthType Basic + AuthName "Collections Login" + PerlOptions +GlobalRequest + PerlSetVar OILSProxyPermissions "money.collections_tracker.create" + PerlAuthenHandler OpenILS::WWW::Proxy::Authen + Require valid-user + Options +ExecCGI + PerlSendHeader On + + +# ---------------------------------------------------------------------------------- +# Protect Standalone/Offline mode files from public view +# ---------------------------------------------------------------------------------- + + AuthType Basic + AuthName "Standalone Mode Login" + PerlOptions +GlobalRequest + PerlSetVar OILSProxyPermissions "STAFF_LOGIN" + PerlAuthenHandler OpenILS::WWW::Proxy::Authen + Require valid-user + PerlSendHeader On + allow from all + SSLRequireSSL + + +# ---------------------------------------------------------------------------------- +# Reporting output lives here +# ---------------------------------------------------------------------------------- + + AuthType Basic + AuthName "Report Login" + PerlOptions +GlobalRequest + PerlSetVar OILSProxyPermissions "VIEW_REPORT_OUTPUT" + PerlAuthenHandler OpenILS::WWW::Proxy::Authen + Require valid-user + Options +ExecCGI + PerlSendHeader On + + +# ---------------------------------------------------------------------------------- +# Reports GUI +# ---------------------------------------------------------------------------------- + + SSILegacyExprParser on + Options +Includes + XMLEntContentType "text/html; charset=utf-8" + AddOutputFilter INCLUDES;XMLENT .xhtml + AddOutputFilter INCLUDES;XMLENT .html + + + + SSILegacyExprParser on + Options +Includes + AddOutputFilter INCLUDES;XMLENT .xhtml + + +# capture locale CGI param for /reports/fm_IDL.xml +RewriteCond %{REQUEST_URI} ^/reports/fm_IDL.xml +RewriteCond %{QUERY_STRING} locale=([^&;]*) +RewriteRule . - [E=locale:%1] + + + IDLChunkStripPI "yes" + IDLChunkEscapeScript "no" + IDLChunkStripComments "yes" + IDLChunkStripDoctype "yes" + IDLChunkContentType "application/xml; charset=utf-8" + AddOutputFilter INCLUDES;IDLCHUNK .xml + SetEnv no-gzip + + +# ---------------------------------------------------------------------------------- +# EDI Message viewer +# ---------------------------------------------------------------------------------- + + SetHandler perl-script + PerlHandler OpenILS::WWW::EDI + Options +ExecCGI + PerlSendHeader On + Require all granted + + +# ---------------------------------------------------------------------------------- +# XML-RPC gateway +# ---------------------------------------------------------------------------------- + + SetHandler perl-script + PerlHandler OpenILS::WWW::XMLRPCGateway + Options +ExecCGI + PerlSendHeader On + Require all granted + + Header onsuccess set Cache-Control no-cache + + + +# ---------------------------------------------------------------------------------- +# Conify - next-generation Evergreen administration interface +# ---------------------------------------------------------------------------------- +RewriteRule ^/conify/([a-z]{2}-[A-Z]{2})/global/(.*)$ /conify/global/$2 [E=locale:$1,L] + + SSILegacyExprParser on + Options +Includes + XMLEntStripPI "yes" + XMLEntEscapeScript "no" + XMLEntStripComments "no" + XMLEntContentType "text/html; charset=utf-8" + AddOutputFilter INCLUDES;XMLENT .html + + AuthType Basic + AuthName "Dojo Admin Login" + PerlOptions +GlobalRequest + PerlSetVar OILSProxyPermissions "STAFF_LOGIN" + PerlAuthenHandler OpenILS::WWW::Proxy::Authen + Require valid-user + Options +ExecCGI + PerlSendHeader On + + +# ---------------------------------------------------------------------------------- +# The PhoneList lives here +# ---------------------------------------------------------------------------------- + + SetHandler perl-script + AuthType Basic + AuthName "PhoneList Login" + Require valid-user + PerlOptions +GlobalRequest + PerlSetVar OILSProxyPermissions "STAFF_LOGIN" + PerlHandler OpenILS::WWW::PhoneList + PerlAuthenHandler OpenILS::WWW::Proxy::Authen + Options +ExecCGI + PerlSendHeader On + + Header onsuccess set Cache-Control no-cache + + + + SetHandler perl-script + PerlHandler OpenILS::WWW::Vandelay::spool_marc + Options +ExecCGI + Require all granted + + +# OpenURL 0.1 searching based on OpenSearch +RewriteMap openurl prg:/openils/bin/openurl_map.pl +RewriteCond %{QUERY_STRING} (^.*$) +RewriteRule ^/openurl$ ${openurl:%1} [NE,PT] + + + +# General Evergreen web template processor + + SetHandler perl-script + PerlHandler OpenILS::WWW::EGWeb + Options +ExecCGI + PerlSendHeader On + Require all granted + + PerlSetVar OILSWebBasePath "/eg" + PerlSetVar OILSWebWebDir "/openils/var/web" + PerlSetVar OILSWebDefaultTemplateExtension "tt2" + + # Port Apache listens on for HTTP traffic. Used for HTTP requests + # routed from Perl handlers back to the same Apache instance, like + # added content requests. Use this when running Apache with a + # non-standard port, typical with a proxy setup. Defaults to "80". + PerlSetVar OILSWebInternalHTTPPort "7080" + + # Enable Template-Toolkit error debugging messages (apache error log) + PerlSetVar OILSWebDebugTemplate "false" + # local cache of compiled Template Toolkit templates + PerlSetVar OILSWebCompiledTemplateCache "/tmp/eg_template_cache" + # template TTL - how long, in seconds, that Template Toolkit + # waits to check for updated template files + #PerlSetVar OILSWebTemplateStatTTL 60 + + # ------------------------------------------------------- + # Media Prefix. In the 3rd example, the protocol (http) is enforced + #PerlSetVar OILSWebMediaPrefix "/media" + #PerlSetVar OILSWebMediaPrefix "static.example.com/media" + #PerlSetVar OILSWebMediaPrefix "http://static.example.com/media" + + # Locale messages files: + # + # These appear in pairs; the first represents the user agent + # Accept-Language header locale, and the second represents + # the fully-qualified path for the corresponding PO file that + # contains the messages. + # + # If you enable two or more locales, then users will be able to + # select their preferred locale from a locale picker in the TPAC. + # + #PerlAddVar OILSWebLocale "en" + #PerlAddVar OILSWebLocale "/openils/var/data/locale/opac/messages.en.po" + #PerlAddVar OILSWebLocale "en_ca" + #PerlAddVar OILSWebLocale "/openils/var/data/locale/opac/en-CA.po" + #PerlAddVar OILSWebLocale "fr_ca" + #PerlAddVar OILSWebLocale "/openils/var/data/locale/opac/fr-CA.po" + PerlAddVar OILSWebLocale "es_es" + PerlAddVar OILSWebLocale "/openils/var/data/locale/opac/es-ES.po" + PerlAddVar OILSWebLocale "en_us" + PerlAddVar OILSWebLocale "/openils/var/data/locale/opac/en-PINES.po" + + # Set the default locale: defaults to en-US + #PerlAddVar OILSWebDefaultLocale "fr_ca" + + # Templates will be loaded from the following paths in reverse order. + PerlAddVar OILSWebTemplatePath "/openils/var/templates" + PerlAddVar OILSWebTemplatePath "/openils/var/templates-bootstrap" + #PerlAddVar OILSWebTemplatePath "/openils/var/templates_localskin" + + #------------------------------------------------- + # Added Content Configuration + #------------------------------------------------- + # Content Cafe + #SetEnv OILS_CONTENT_CAFE_USER MYUSER + #SetEnv OILS_CONTENT_CAFE_PASS MYPASS + + # LibraryThing + #SetEnv OILS_LIBRARYTHING_URL http://ltfl.librarything.com/forlibraries/widget.js?id=MYID + #SetEnv OILS_LIBRARYTHING_HTTPS_URL https://ltfl.librarything.com/forlibraries/widget.js?id=MYID + + # ChiliFresh + #SetEnv OILS_CHILIFRESH_ACCOUNT + #SetEnv OILS_CHILIFRESH_URL http://chilifresh.com/on-site/js/evergreen.js + #SetEnv OILS_CHILIFRESH_HTTPS_URL https://secure.chilifresh.com/on-site/js/evergreen.js + + # Novelist + # Specify the initial script URL for Novelist (containing account credentials, etc.) + SetEnv OILS_NOVELIST_URL https://imageserver.ebscohost.com/novelistselect/ns2init.js + SetEnv OILS_NOVELIST_PROFILE GENASYS_NOVELIST_PROFILE + SetEnv OILS_NOVELIST_PASSWORD GENASYS_NOVELIST_PASSWORD + + # PINES Customization: Move Syndetics info from opensrf.xml to here + SetEnv OILS_SYNDETICS_URL https://secure.syndetics.com/index.aspx + SetEnv OILS_SYNDETICS_ID GENASYS_SYNDETICS_USER_ID + + #------------------------------------------------- + + + SetOutputFilter DEFLATE + BrowserMatch ^Mozilla/4 gzip-only-text/html + BrowserMatch ^Mozilla/4\.0[678] no-gzip + BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html + SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary + + Header append Cache-Control "public" + Header append Vary User-Agent env=!dont-vary + + + + + # should pick up the default expire time from eg.conf... + + SetOutputFilter DEFLATE + BrowserMatch ^Mozilla/4 gzip-only-text/html + BrowserMatch ^Mozilla/4\.0[678] no-gzip + BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html + SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary + + Header append Cache-Control "public" + Header append Vary User-Agent env=!dont-vary + + + + + PerlSetVar OILSWebContextLoader "OpenILS::WWW::EGCatLoader" + # Expire the HTML quickly since we're loading dynamic data for each page + ExpiresActive On + ExpiresByType text/html "access plus 5 seconds" + + + PerlSetVar OILSWebContextLoader "OpenILS::WWW::EGKPacLoader" + PerlSetVar KPacConfigFile "/openils/conf/kpac.xml" + ExpiresActive On + ExpiresByType text/html "access plus 5 seconds" + + +# Note: the template processor will decline handling anything it does not +# have an explicit configuration for, which means it will fall back to +# Apache to serve the file. However, in the interest of speed, go ahead +# and tell Apache to avoid asking OpenILS::WWW::EGWeb for static content. +# Add more exemptions as needed. + + SetHandler None + + +# ---------------------------------------------------------------------------------- +# Some mod_deflate setup +# ---------------------------------------------------------------------------------- + + + ## optional logging for mod_deflate debugging + ##DeflateFilterNote Input instream + ##DeflateFilterNote Output outstream + ##DeflateFilterNote Ratio ratio + ## + ##LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate + ##CustomLog /var/log/apache2/deflate_log deflate + + # There are problems with XMLENT and mod_deflate - so lets disable it + # This is where we don't have a pre-existing LocationMatch directive earlier + + SetEnv no-gzip + + + SetEnv no-gzip + + + SetEnv no-gzip + + + SetEnv no-gzip + + + + SetHandler perl-script + PerlHandler OpenILS::WWW::PrintTemplate + Options +ExecCGI + PerlSendHeader On + Require all granted + + + + + + + SetHandler perl-script + PerlHandler OpenILS::WWW::IDL2js + Options +ExecCGI + PerlSendHeader On + Require all granted + + + Header append Cache-Control "public" + + + + SetOutputFilter DEFLATE + BrowserMatch ^Mozilla/4 gzip-only-text/html + BrowserMatch ^Mozilla/4\.0[678] no-gzip + BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html + SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary + + Header append Vary User-Agent env=!dont-vary + + + + + + SSLRequireSSL + Options -MultiViews + PerlSetVar OILSWebStopAtIndex "true" + + RewriteCond %{HTTPS} off + RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,R,L] + + # sample staff-specific translation files + #PerlAddVar OILSWebLocale "en_ca" + #PerlAddVar OILSWebLocale "/openils/var/data/locale/staff/en-CA.po" + #PerlAddVar OILSWebLocale "fr_ca" + #PerlAddVar OILSWebLocale "/openils/var/data/locale/staff/fr-CA.po" + + + + + Header append Cache-Control "public" + + + SetOutputFilter DEFLATE + BrowserMatch ^Mozilla/4 gzip-only-text/html + BrowserMatch ^Mozilla/4\.0[678] no-gzip + BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html + SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary + + Header append Vary User-Agent env=!dont-vary + + + + +# Disabled for PINES +# +# SetHandler perl-script +# PerlHandler OpenILS::WWW::RemoteAuth +# Options +ExecCGI +# +# # access restricted to localhost by default; since this module provides no +# # client authentiation, restricting access by IP or other means is stongly +# # recommended +# Require local +# +# # remoteauth profile name +# PerlSetVar OILSRemoteAuthProfile "Basic" +# # Perl module for processing requests +# PerlSetVar OILSRemoteAuthHandler "OpenILS::WWW::RemoteAuth::Basic" +# +# # staff username/password for config lookup and patron retrieval +# PerlSetVar OILSRemoteAuthClientUsername "admin" +# PerlSetVar OILSRemoteAuthClientPassword "demo123" +# +# +# +# SetHandler perl-script +# PerlHandler OpenILS::WWW::RemoteAuth +# Options +ExecCGI +# +# # access restricted to localhost by default; since this module provides no +# # client authentiation, restricting access by IP or other means is stongly +# # recommended +# Require local +# +# # remoteauth profile name +# PerlSetVar OILSRemoteAuthProfile "EZProxyCGI" +# # Perl module for processing requests +# PerlSetVar OILSRemoteAuthHandler "OpenILS::WWW::RemoteAuth::EZProxyCGI" +# +# # staff username/password for config lookup and patron retrieval +# PerlSetVar OILSRemoteAuthClientUsername "admin" +# PerlSetVar OILSRemoteAuthClientPassword "demo123" +# +# # Location of TT2 templates for EZProxy login form and error pages. +# # Templates will be loaded from the following paths in reverse order. +# PerlAddVar OILSRemoteAuthTemplatePath "@localstatedir@/templates/remoteauth/ezproxycgi" +# #PerlAddVar OILSRemoteAuthTemplatePath "@localstatedir@/templates_localskin/remoteauth/ezproxycgi" +# +# # Locale (defaults to en_us) +# #PerlAddVar OILSRemoteAuthLocale "en_us" +# +# # Base URI of your EZProxy server; be sure there is no trailing slash +# PerlSetVar OILSRemoteAuthEZProxyBaseURI "http://example.com/ezproxy" +# +# # shared secret used to generate EZProxy authentication ticket +# # This should be the same as the value in the MD5 line of your EZProxy users.txt configuration +# # This default value is not suitable for production! +# PerlSetVar OILSRemoteAuthEZProxySecret "secret" +# +# +# +# SetHandler perl-script +# PerlHandler OpenILS::WWW::RemoteAuth +# Options +ExecCGI +# +# # access restricted to localhost by default; since this module provides no +# # client authentication and can be configured to return detailed personal +# # information, restricting access by IP or other means is stongly +# # recommended +# Require local +# +# # remoteauth profile name +# PerlSetVar OILSRemoteAuthProfile "PatronAPI" +# # Perl module for processing requests +# PerlSetVar OILSRemoteAuthHandler "OpenILS::WWW::RemoteAuth::PatronAPI" +# +# # staff username/password for config lookup and patron retrieval +# PerlSetVar OILSRemoteAuthClientUsername "admin" +# PerlSetVar OILSRemoteAuthClientPassword "demo123" +# +# # Location of TT2 templates for PatronAPI responses. +# # Templates will be loaded from the following paths in reverse order. +# PerlAddVar OILSRemoteAuthTemplatePath "@localstatedir@/templates/remoteauth/patronapi" +# #PerlAddVar OILSRemoteAuthTemplatePath "@localstatedir@/templates_localskin/remoteauth/patronapi" +# +# # Locale (defaults to en_us) +# #PerlAddVar OILSRemoteAuthLocale "en_us" +# +# # set to "true" to allow retrieval of detailed patron information +# # without patron authorization +# PerlSetVar OILSRemoteAuthPatronAPIAllowDump "false" +# +# # identifier type for patron information requests (/dump) +# # permitted values: "barcode" (default), "username" +# #PerlSetVar OILSRemoteAuthPatronAPIIDType "barcode" +# + +# Uncomment the following to force SSL for everything. Note that this defeats caching +# and you will suffer a performance hit. +RewriteCond %{HTTPS} off +RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,R,L] + +# ------------------------------------------------------------------------ +# /eg2/ client setup and locale configuration. +# +# If a valid locale cookie is present that does not match the current +# path, redirect to the requested locale path. +# Otherwise, if no locale is active, redirect to the default locale. + +# fr-CA +#RewriteCond %{REQUEST_URI} ^/eg2/ +#RewriteCond %{REQUEST_URI} !^/eg2/fr-CA/ +#RewriteCond %{HTTP_COOKIE} eg_locale=fr_ca +#RewriteRule ^/eg2/(.*) https://%{HTTP_HOST}/eg2/fr-CA/$1 [R=307,L] + +# Default / en-US. +# No alternate supported cookie provided. +RewriteCond %{REQUEST_URI} ^/eg2/ +RewriteCond %{REQUEST_URI} !^/eg2/([a-z]{2}-[A-Z]{2})/ +RewriteRule ^/eg2/(.*) https://%{HTTP_HOST}/eg2/en-US/$1 [R=307,L] + +# en-US build +# This is the only required configuration when only using the default locale. + + FallbackResource /eg2/en-US/index.html + + + Header set Cache-Control "no-cache, no-store, must-revalidate" + Header set Pragma "no-cache" + Header set Expires 0 + + + + +# fr-CA build +# +# FallbackResource /eg2/fr-CA/index.html +# +# +# Header set Cache-Control "no-cache, no-store, must-revalidate" +# Header set Pragma "no-cache" +# Header set Expires 0 +# +# +# diff --git a/templates/setup-head.sh b/templates/setup-head.sh index 7504ba9..d79746d 100755 --- a/templates/setup-head.sh +++ b/templates/setup-head.sh @@ -381,36 +381,8 @@ then chown opensrf:opensrf /openils/conf/lib_ips.txt sed -i 's^#OpenILS::WWW::Redirect^OpenILS::WWW::Redirect^g' /etc/apache2/eg_startup sed -i 's^#use OpenILS::WWW::Redirect^use OpenILS::WWW::Redirect^g' /etc/apache2/eg_startup - sed -i 's+RedirectMatch 301 ^/$ /eg/opac/home+#RedirectMatch 301 ^/$ /eg/opac/home+g' /etc/apache2/eg_vhost.conf - sed -i 's+#++g' /etc/apache2/eg_vhost.conf - sed -i 's^# SetHandler perl-script^ SetHandler perl-script^g' /etc/apache2/eg_vhost.conf - sed -i 's^# PerlHandler OpenILS::WWW::Redirect^ PerlHandler OpenILS::WWW::Redirect^g' /etc/apache2/eg_vhost.conf - sed -i 's^# Options +ExecCGI^ Options +ExecCGI^g' /etc/apache2/eg_vhost.conf - sed -i 's^# PerlSendHeader On^ PerlSendHeader On^g' /etc/apache2/eg_vhost.conf - sed -i 's^# allow from all^ allow from all^g' /etc/apache2/eg_vhost.conf - sed -i 's^#^^g' /etc/apache2/eg_vhost.conf fi -### Setup Novelist -if [ -e .Novelist.txt ] -then - echo;echo "Configuring Evergreen for Novelist" - sleep 2 - . .Novelist.txt - sed -i 's^#SetEnv OILS_NOVELIST_URL^SetEnv OILS_NOVELIST_URL https://imageserver.ebscohost.com/novelistselect/ns2init.js^g' /etc/apache2/eg_vhost.conf - sed -i "/SetEnv OILS_NOVELIST_URL/aSetEnv OILS_NOVELIST_PROFILE $NOVELIST_PROFILE" /etc/apache2/eg_vhost.conf - sed -i "/SetEnv OILS_NOVELIST_PROFILE/aSetEnv OILS_NOVELIST_PASSWORD $NOVELIST_PASSWORD" /etc/apache2/eg_vhost.conf -fi - -### Setup Syndetics -if [ -e .Syndetics.txt ] -then - echo;echo "Configuring Evergreen for Syndetics" - sleep 2 - . .Syndetics.txt - sed -i "/# SetEnv OILS_NOVELIST_PASSWORD/a\n\t# PINES Customization: Move Syndetics info from opensrf.xml to here\n\tSetEnv OILS_SYNDETICS_URL https://secure.syndetics.com/index.aspx\n\tSetEnv OILS_SYNDETICS_ID $SYNDETICS_USER_ID" /etc/apache2/eg_vhost.conf -fi - ### Setup custom KPAC if [ -e kpac.xml ] then @@ -419,14 +391,8 @@ then sleep 1 cp -f kpac.xml /openils/conf chown opensrf:opensrf /openils/conf/kpac.xml - sed -i 's^kpac.xml.example^kpac.xml^g' /etc/apache2/eg_vhost.conf fi -### configure apache module for memcache01 IP -sed -i 's^# OSRFTranslatorCacheServer 127.0.0.1:11211^OSRFTranslatorCacheServer MEMCACHE01_IP:11211^g' /etc/apache2/eg_vhost.conf \ -|| { echo;echo -e $COL_BR_RED"Warning: Failed to update OSRFTranslatorCacheServer to memcache ip in eg_vhost.conf"$COL_RESET ;sleep 1;echo ; } - - AutoGen() { #Run Autogen echo "Restarting OpenSRF..." echo