#!/bin/bash # # Copyright (C) 2019 OX Software GmbH # # This file is part of OX Automation. # # OX Automation is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # OX Automation is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with OX Automation. If not, see <http://www.gnu.org/licenses/>. # # # Authors: # Benedikt Kroening <benedikt.kroening@open-xchange.com> # set -e SCRIPT_DIR="$( cd "$(dirname "$0")" ; pwd -P)" source ${SCRIPT_DIR}/../../lib/common.bash INIT_STATE_FILE="/opt/open-xchange/etc/01-init-node-done" if [ ! -f ${INIT_STATE_FILE} ]; then echo "Configuring backend..." # setting default config (key, value, filepath) setOXProperty com.openexchange.sessiond.autologin true /opt/open-xchange/etc/sessiond.properties setOXProperty com.openexchange.IPCheck false /opt/open-xchange/etc/server.properties setOXProperty com.openexchange.dispatcher.prefix "/appsuite/api/" /opt/open-xchange/etc/server.properties if [ "${OX_HAZELCAST_ENABLED}" = true ]; then # enable cluster functionality echo "Enabling Hazelcast Cluster ..." setOXProperty com.openexchange.hazelcast.enabled true /opt/open-xchange/etc/hazelcast.properties setOXProperty com.openexchange.hazelcast.network.join multicast /opt/open-xchange/etc/hazelcast.properties setOXProperty com.openexchange.hazelcast.network.interfaces "" /opt/open-xchange/etc/hazelcast.properties setOXProperty com.openexchange.hazelcast.configuration.map.asyncBackupCount 1 /opt/open-xchange/etc/hazelcast.properties else echo "Disabling Hazelcast Cluster ..." setOXProperty com.openexchange.hazelcast.enabled false /opt/open-xchange/etc/hazelcast.properties fi echo "Waiting for database service ..." waitPort ${DATABASE_HOST_NAME} ${DATABASE_HOST_PORT} # Adding check if the configdb already exists - if not we will have to provide the "-i" flag to initconfigdb script. # This is required since the script wont create the admin with allowence from remote hosts even tough the flag is specified. # Simple workaround is to check if the DB exists - if yes we will NOT provide the -i flag as it would overwrite the DB. # (grep -ow will only output the exact string "configdb" if found) RESULT=`mysqlshow -h${DATABASE_HOST_NAME} -P ${DATABASE_HOST_PORT} --user=${OX_CONFIGDB_USER} --password=${OX_CONFIGDB_PASS} ${OX_CONFIGDB_NAME} | grep -ow configdb` if [ "$RESULT" != "configdb" ]; then echo "Bootstrapping the configdb ..." sleep 5 BOOTSTRAP_CONFIGDB="-i" fi echo "Running initconfigdb script with provided environment variables (Host: ${DATABASE_HOST_NAME}) ... " /opt/open-xchange/sbin/initconfigdb --configdb-host "${DATABASE_HOST_NAME}" \ --configdb-port "${DATABASE_HOST_PORT}" \ --mysql-root-user "${DATABASE_ROOT_USER}" \ --mysql-root-passwd "${DATABASE_ROOT_PASS}" \ --configdb-user "${OX_CONFIGDB_USER}" \ --configdb-pass "${OX_CONFIGDB_PASS}" \ --configdb-dbname "${OX_CONFIGDB_NAME}" \ -a ${BOOTSTRAP_CONFIGDB} # Replacing OX_ROUTE with $(hostname) if [[ "${INSTALL_TYPE}" == "singlenode" ]]; then echo "Using singlenode as route name ..." export OX_ROUTE=singlenode else echo "Using actual hostname as route name ..." export OX_ROUTE=$(hostname) fi echo "WARNING: overriding OX_ROUTE variable with "$OX_ROUTE echo "Running oxinstaller for ox server ${OX_SERVER_NAME} with route ${OX_ROUTE}" /opt/open-xchange/sbin/oxinstaller \ --servername "${OX_SERVER_NAME}" \ --imapserver "${OX_MAIL_HOST}" \ --smtpserver "${OX_MAIL_HOST}" \ --configdb-readhost "${DATABASE_HOST_NAME}" \ --configdb-readport "${DATABASE_HOST_PORT}" \ --configdb-writehost "${DATABASE_HOST_NAME}" \ --configdb-writeport "${DATABASE_HOST_PORT}" \ --configdb-user "${OX_CONFIGDB_USER}" \ --configdb-pass "${OX_CONFIGDB_PASS}" \ --configdb-dbname "${OX_CONFIGDB_NAME}" \ --master-user "${OX_ADMINMASTER_USER}" \ --master-pass "${OX_ADMINMASTER_PASS}" \ --jkroute "${OX_ROUTE}" \ --name-of-oxcluster "${OX_CLUSTER_NAME}" \ --no-license \ --servermemory 1024 \ --network-listener-host "*" \ # Configure noreply settings setOXProperty com.openexchange.noreply.address "${OX_ENV_NOREPLY_ADDRESS}" /opt/open-xchange/etc/noreply.properties setOXProperty com.openexchange.noreply.login "${OX_ENV_NOREPLY_LOGIN}" /opt/open-xchange/etc/noreply.properties setOXProperty com.openexchange.noreply.password "${OX_ENV_NOREPLY_PASSWORD}" /opt/open-xchange/etc/noreply.properties setOXProperty com.openexchange.noreply.server "${OX_ENV_NOREPLY_SERVER}" /opt/open-xchange/etc/noreply.properties echo "$(date)" > ${INIT_STATE_FILE} else echo "WARNING: This scripts has already been executed and will be skipped!" sleep 5 fi # echo "Init node finishe" #cat ${INIT_STATE_FILE}