#!/bin/bash

# Скрипт помогает установить пакеты SoftWLC на один сервер
# Предварительно устанавливает Java, mysql-server, tomcat, curl, libcurl и прочие необходимые пакеты из зависимостей
# Затем последовательно устанавливает все нужные пакеты комплекса:
#
# eltex-oui-list           : Содержит список соответствий MAC-адресов и производителей оборубования
# eltex-axis               : Фреймворк для работы службы SOAP/XML (Apache Axis2)
# eltex-ems-db             : Разворачивает схему в БД MySQL для EMS
# eltex-radius-db          : Разворачивает схему в БД MySQL для RADIUS-сервера
# eltex-auth-service-db    : Разворачивает схему в БД MySQL для сервиса авторизации
# eltex-portal-mysql       : Разворачивает схему в БД MySQL для портала авторизации
# eltex-auth-service       : Сервис аутентификации и авторизации SoftWLC
# eltex-ems                : Серверная и клиентская часть СУ EMS
# eltex-radius             : RADIUS-сервер
# eltex-radius-nbi         : Северный мост (northbound) для стыка SoftWLC с вышестоящими OSS/BSS
# eltex-notification-gw    : SMS-шлюз, используемый другими пакетами комплекса
# eltex-apb                : Сервис для взаимодействия точек доступа
# eltex-pcrf               : Служба управления политиками доступа (используется BRAS)
# eltex-logging-service    : Микросервис журналирования операций
# eltex-mercury            : Сервис по управлению Hotspot пользователями
# eltex-portal             : Портал для авторизации клиентов WiFi в схеме 'Hotspot'
# eltex-portal-constructor : Web-приложение для создания и редактирования порталов для авторизации
# eltex-wifi-cab           : Личный кабинет оператора услуги Wi-Fi
# eltex-sorm2-replicator * : Служба для обогащения и пересылки radius acct в региональные съемники СОРМ-2
#                          : И для формирования ACCT отчетов СОРМ-3
# eltex-wifi-sa **         : Сервис-активатори ОТТ
# eltex-ott-mac-checker ** : Сервис проверки MAC-адреса на принадлежность к OTT домену
# * - не устанавливаются по умолчанию, но могут быть установленны из репозитория.
# ** - не устанавливаются по умолчанию, но могут быть установлены с флагом WITH_OTT или отдельно из репо.

# Версия: SoftWLC 1.14, EMS 3.18
# Целевая ОС: xenial (ubuntu 16.04), bionic (ubuntu 18.04)
# Автор: Абаренов ВП
# ООО Предприятие Элтекс
# Новосибирск, 2019

# Модификаторы запуска скрипта:
# --skip      : пропустить установку системных пакетов. только установка пакетов из репозитория eltex

# Ответы для автоматической установки
# Измените при необходимости

# Имя пользователя администратора MySQL
export ANSWER_SOFTWLC_MYSQL_USER=root
# Пароль администратора MySQL
export ANSWER_SOFTWLC_MYSQL_PASSWORD=root
# Имя пользователя администратора SoftWLC
export ANSWER_AUTH_SERVICE_ADMIN_USER=admin
# Пароль администратора SoftWLC
export ANSWER_AUTH_SERVICE_ADMIN_PASSWORD=password
# Пароль служебного пользователя SoftWLC (softwlc_service)
export ANSWER_SOFTWLC_SERVICE_USER_PASSWORD=softwlc
# Корневой домен
export ANSWER_SOFTWLC_ROOT_DOMAIN=root
# Язык EMS по умолчанию: 1 - русский, 2 - английский
export ANSWER_EMS_LANG=1
# Максимальное количество ОЗУ, выделяемое EMS (в МБ)
export ANSWER_EMS_MAX_HEAP=1024
# Максимальное количество ОЗУ, выделяемое Tomcat (в МБ)
export ANSWER_TOMCAT_MAX_HEAP=1024
# Код создаваемого тарифа
export ANSWER_RADIUS_TARIFF_CODE=default
# Генерировать ли сертификат для сервера RADIUS
export ANSWER_NBI_MAKE_SERVER_CERTIFICATE=1
# Срок действия серверного сертификата RADIUS
export ANSWER_NBI_SERVER_CERTIFICATE_PERIOD=3650
# Пароль от закрытого ключа серверного сертификата RADIUS
export ANSWER_NBI_SERVER_CERTIFICATE_KEY=1234

# Установить пакеты eltex-wifi-sa и eltex-ott-mac-checker
export WITH_OTT=0

# Не рекомендуется редактировать
export ANSWER_SOFTWLC_LOCAL=1
export ANSWER_EMS_REPLACE_CONF=1
export ANSWER_EMS_ACCESS_TYPE_DOMAIN=1
export ANSWER_RADIUS_MAKE_TARIFF=1
export ANSWER_RADIUS_TARIFF_PORTAL=1
export ANSWER_SOFTWLC_SERVICE_USER_LOGIN=softwlc_service
export ANSWER_RADIUS_DB_UPDATE_CRON=1

# Настройка автоматического ответа на интерактивные вопросы
export DEBIAN_FRONTEND="noninteractive"

red=`tput setaf 1`
green=`tput setaf 2`
reset=`tput sgr0`

# Public Eltex production repo
ELTEX_PUBLIC_REPO="http://archive.eltex-co.ru/wireless"
# Private (internal) repo
ELTEX_PRIVATE_REPO="http://lab3-repo.eltex.loc:2088"
# Переменная, которая является рабочей. Внутри скипта работа идёт с ней в зависимости от параметров вызова скрипта
ELTEX_REPO=${ELTEX_PUBLIC_REPO}

# Наименование программ (определяют путь в репозитории)
SOFTWLC_VERSION="softwlc-1.14"

REPO_GPG_KEY_ADDR="${ELTEX_REPO}/repo.gpg.key"
SOFTWLC_DISTRIBUTION="$SOFTWLC_VERSION"     # * параметр зависит от версии ubuntu (будет переопределён в коде)
SOFTWLC_REPO_SOURCES="deb [arch=amd64] $ELTEX_REPO $SOFTWLC_VERSION main"

DHCPD_HELPER="$(dirname `which $0`)/dhcpd-helper.sh"

NGINX_CONFIG_FILE="softwlc_1.14_nginx.conf"
# переменная для пропуска установки пакетов linux, java и т.д. (т.е. только установка/обновление Eltex-пакетов из репо)
SKIP_LINUX_DEB=0

# Вендор JVM
JAVA_VENDOR="openjdk"
TOMCAT_PACKET_NAME="tomcat7"                       # по умолчанию ставить tomcat7, в более поздних (>= bionic) ставить 8

MONGO_REPO_10=/etc/apt/sources.list.d/mongodb.list
MONGO_REPO_30=/etc/apt/sources.list.d/mongodb-org-3.0.list
MONGO_REPO_32=/etc/apt/sources.list.d/mongodb-org-3.2.list
MONGO_REPO_34=/etc/apt/sources.list.d/mongodb-org-3.4.list
MONGO_REPO_36=/etc/apt/sources.list.d/mongodb-org-3.6.list
MONGO_REPO_40=/etc/apt/sources.list.d/mongodb-org-4.0.list

MONGO_DBS="admin
        local
        notification-gw
        ott
        pcrf
        wifi-customer-cab"

MONGO_EXPORT_PATH="/tmp/mongoexport/"

# Прервать установку при ошибках
set -e

update_repo_related_vars() {
    REPO_GPG_KEY_ADDR="${ELTEX_REPO}/repo.gpg.key"
    SOFTWLC_REPO_SOURCES="deb [arch=amd64] $ELTEX_REPO $SOFTWLC_VERSION main"
}

# проверить наличие обязательного файла (без него не будет настроен nginx, а значит не заработает половина сервисов)
check_nginx_config() {
    if [[ -f "$NGINX_CONFIG_FILE" ]]
    then
	echo "File '$NGINX_CONFIG_FILE' found."
    else
	echo "$(tput setaf 1)File '$NGINX_CONFIG_FILE' not found, installation aborted!$(tput sgr 0)"
	exit -1
    fi
}

set_silent_mode() {
    # mysql root password settings (default: login=root, password=root)
    sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password $ANSWER_SOFTWLC_MYSQL_PASSWORD"
    sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $ANSWER_SOFTWLC_MYSQL_PASSWORD"
    # rsyslog-mysql login@password settings (default: login=root, password=root)
    echo "rsyslog-mysql   rsyslog-mysql/dbconfig-install  boolean true" | debconf-set-selections
    echo "rsyslog-mysql   rsyslog-mysql/mysql/app-pass    password $ANSWER_SOFTWLC_MYSQL_PASSWORD" | debconf-set-selections
    echo "rsyslog-mysql   rsyslog-mysql/app-password-confirm      password $ANSWER_SOFTWLC_MYSQL_PASSWORD" | debconf-set-selections
    echo "rsyslog-mysql   rsyslog-mysql/password-confirm  password $ANSWER_SOFTWLC_MYSQL_PASSWORD" | debconf-set-selections
    echo "rsyslog-mysql   rsyslog-mysql/mysql/admin-pass  password $ANSWER_SOFTWLC_MYSQL_PASSWORD" | debconf-set-selections
    echo "rsyslog-mysql   rsyslog-mysql/remote/port       string " | debconf-set-selections
}


install() {
    apt-get --yes install "$@"
}


stop() {
    # add '|| true' - to ignore error
	service "$@" stop || true
}

restart() {
	service "$@" restart
}

start() {
	service "$@" start
}

reload() {
	service "$@" reload || true
}

# Контроль открытого порта
# Вызов функции: check_port "8080" result_var
# В результат будет помещён 0 - OK(порт открыт) или 1 - Ошибка (порта нет)
function check_port() {
    local  __resultvar=$2
    local  myresult='0'
    if [[ `netstat -pna | grep ":$1"` ]]; then
        echo "${green}Check port '$1' - passed${reset}"
        myresult='0'
    else
        echo "${red}Check port '$1' - error${reset}"
        myresult='1'
    fi
    eval ${__resultvar}="'$myresult'"
}

remove_mongo_repos() {
    rm -f ${MONGO_REPO_10}
    rm -f ${MONGO_REPO_30}
    rm -f ${MONGO_REPO_32}
    rm -f ${MONGO_REPO_34}
    rm -f ${MONGO_REPO_36}
    rm -f ${MONGO_REPO_40}
}

# Определить repo: public | internal
if [[ ! -z "$1" ]]
then
for i in "$@" ; do
    if [[ ${i} == "--public" ]] ; then
        ELTEX_REPO=${ELTEX_PUBLIC_REPO}
        update_repo_related_vars
        break
    fi

    if [[ ${i} == "--private" ]] ; then
        ELTEX_REPO=${ELTEX_PRIVATE_REPO}
        update_repo_related_vars
        break
    fi
done
fi

# узнать кодовое имя дистрибутива ubuntu вперёд всех операций
DISTRIB_CODENAME=
source /etc/lsb-release

echo "${green}Ubuntu distrib code name: $DISTRIB_CODENAME${reset}"

if [[ ${DISTRIB_CODENAME} != "xenial" && ${ELTEX_REPO} == ${ELTEX_PUBLIC_REPO} ]]; then
    echo "${red}Only ubuntu 16.04 (xenial) is supported.${reset}"
    exit 1
fi

if [[ `id -u` -ne 0 ]]; then
    echo "${red}This script can only be run as root${reset}"
    exit 1
fi

#проверить разрядность системы и отказаться работать, если не x64
DISTRIB_PLATFORM=`/bin/uname -m`
echo "Platform : $DISTRIB_PLATFORM"

if [[ ${DISTRIB_PLATFORM} != "x86_64" ]] ; then
    echo "${red}Platform is not 'x86_64', script aborted!${reset}"
    exit -1
fi

# Выставить режим пропуска инсталляции системных пакетов
if [[ ! -z "$1" ]]
then
for i in "$@" ; do
    if [[ ${i} == "--skip" ]] ; then
        SKIP_LINUX_DEB=1
        echo "${green}Skipping installation of system packages${reset}"
        break
    fi
done
fi


# вывести в консоль репозиторий после проверки флага
echo "${green}Repository: $ELTEX_REPO ${reset}"

echo "${green}Java vendor: $JAVA_VENDOR${reset}"

# получить конфигурацию nginx соотв. версии
wget ${ELTEX_REPO}/nginx/conf/${NGINX_CONFIG_FILE} -O ${NGINX_CONFIG_FILE} || true

# проверить, что в режиме инсталляции softwlc есть конфиг файл от nginx
check_nginx_config

# Путь репозитория переопределяется в зависимости от имени дистрибутива Ubuntu
SOFTWLC_DISTRIBUTION="$SOFTWLC_VERSION-$DISTRIB_CODENAME"

# Режим "пропустить инсталляцию системных пакетов"
if [[ ! ${SKIP_LINUX_DEB} == "1" ]] ; then

    # Добавить новый доверенный ключ на репозиторий mysql.
    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29

    # установить (обновить) программу работы с репозиторием add-apt-repository (т.к. в некоторых системах она не присутствует)
    install software-properties-common

    # удалить старый репозиторий (ems), если он есть
    if [[ -f "/etc/apt/sources.list.d/eltex.list" ]]; then
        rm /etc/apt/sources.list.d/eltex.list
    fi

    # добавить репозиторий Eltex в список источников apt
    echo "deb [arch=amd64] $ELTEX_REPO $SOFTWLC_DISTRIBUTION main" >> /etc/apt/sources.list.d/eltex.list

    wget -O - ${REPO_GPG_KEY_ADDR} | sudo apt-key add -

    # Nginx
    wget https://nginx.org/keys/nginx_signing.key
    apt-key add nginx_signing.key

    echo "deb http://nginx.org/packages/ubuntu/ $DISTRIB_CODENAME nginx" > /etc/apt/sources.list.d/nginx.list


    # внести свежий репозиторий mongodb
    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 #(mongo 4.0)

    # зачистить список источников от всех возможных mongo repo, чтобы ниже добавить свой новый
    remove_mongo_repos

    # добавить репозиторий mongodb в список источников apt
    case "$DISTRIB_CODENAME" in
      "xenial")
        echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list #(mongo 4.0)
        ;;
      "bionic")
        echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list #(mongo 4.0)
        ;;
      *)
        echo "Unknown Ubuntu codename. Script aborted!"
        exit -1
        ;; 
    esac

    # обновить репозиторий
    apt-get update || true

    # Заранее задать ответы на вопросы инсталлятора о паролях mysql и прочее
    set_silent_mode

    # провести инсталляцию пакета openjdk
    install openjdk-8-jdk
    # прописать в системе использование только что установленного пакета
    update-java-alternatives -s java-1.8.0-openjdk-amd64 

    # Обязательное создание линка ДО инсталляции Tomcat
    # иначе процесс для Tomcat вывалится с ошибкой 'Not found JAVA_HOME' и вся установка прервётся.
    # Обнаружено в Ubuntu16 (xenial), в старой Ubuntu14 (trusty) всё проходило нормально.
    if [[ ! -e /usr/lib/jvm/default-java ]]; then
        ln -s /usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/default-java
    fi

    if [[ "$DISTRIB_CODENAME" == "bionic" ]]; then
        TOMCAT_PACKET_NAME="tomcat8"
    fi

    # установить Tomcat
    install ${TOMCAT_PACKET_NAME}

    # Установить максимальный размер heap для Tomcat
    sed -i "s/-Xmx[0-9]\+[a-zA-Z]/-Xmx${ANSWER_TOMCAT_MAX_HEAP}m/" /etc/default/${TOMCAT_PACKET_NAME}

    # Добавить джава опцию, изменяющую рандом файл на urandom
    if ! grep "^[^#].*-Djava\.security\.egd=file:/dev/\./urandom\b" /etc/default/${TOMCAT_PACKET_NAME} &> /dev/null; then
        echo "JAVA_OPTS=\"\${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom\"" >> /etc/default/${TOMCAT_PACKET_NAME}
    fi

    # Принудительное использование openjdk в Tomcat
    echo "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> /etc/default/${TOMCAT_PACKET_NAME}

    # установить прочие пакеты, которые прописаны в зависимостях пакета eltex-ems
    install expect daemon psmisc mysql-server mysql-client ntp tftp-hpa tftpd-hpa snmpd snmp rsyslog curl libpcap-dev


    if [[ "$DISTRIB_CODENAME" == "bionic" ]]; then
        install libcurl4
    else
        install libcurl3
    fi


    # rsyslog-mysql устанавливается только после окончания установки mysql-server
    # иначе попытка его конфигурирования провалится
    install rsyslog-mysql

    # установить MongoDB
    install mongodb-org
    # mongodb-org не стартует автоматически после инсталляции, нужно руками обеспечить его старт, чтобы остальное корректно установилось
    case "$DISTRIB_CODENAME" in
      "xenial")
        systemctl enable mongod.service
        ;;
      "bionic")
        systemctl enable mongod.service
        ;;
      *)
        echo "Unknown Ubuntu codename. Script aborted!"
        exit -1
        ;; 
    esac

    service mongod restart
else

    apt-get update || true

fi

PACKAGES="eltex-oui-list
        eltex-axis
        eltex-ems-db
        eltex-radius-db
        eltex-auth-service-db
        eltex-portal-mysql
        eltex-ems
        eltex-radius
        eltex-radius-nbi
        eltex-auth-service
        eltex-notification-gw
        eltex-apb
        eltex-pcrf
        eltex-logging-service
        eltex-mercury
        eltex-portal
        eltex-portal-constructor
        eltex-wifi-cab"

if [[ ${WITH_OTT} == 1 ]]; then
  PACKAGES="$PACKAGES
        eltex-wifi-sa
        eltex-ott-mac-checker"
fi

# Последовательная установка пакетов
for package in ${PACKAGES}; do
    echo
    echo "*"
    echo "* Installing $package ..."
    echo "*"
    echo

    install ${package}

    case "$package" in
        eltex-radius-nbi)
            # Установить серверный сертификат в eltex-radius
            /var/lib/eltex-radius-nbi/setup_er_eap.sh
        ;;
    esac
done

if [[ -x "$DHCPD_HELPER" ]]; then
    echo -n "Install and configure ISC DHCP server? [y/N] "
    read ans
    if [[ "$ans" == [yY] ]] ; then
        install isc-dhcp-server
        ${DHCPD_HELPER}
    fi
fi

# Модификации tomcat

TOMCAT_BASE=
TOMCAT_SERVICE=
source "/var/lib/eltex-ems/tomcat-consts"

stop ${TOMCAT_SERVICE}

# Добавить RemoteIpValve в server.xml

VALVE="        <!-- #96184 forward remote ip for nginx -->\n\
        <Valve className=\\\"org.apache.catalina.valves.RemoteIpValve\\\"\n\
           remoteIpHeader=\\\"X-Forwarded-For\\\"\n\
           internalProxies=\\\"127\\\\.0\\\\.0\\\\.1\\\"\n\
           requestAttributesEnabled=\\\"true\\\"/>\n"

AWK="BEGIN {
print \"Input file:\", ARGV[1];
OUTFILE = ARGV[1] \"_\";
print \"Temporary output file:\", OUTFILE;
ALREADY=0;
}
/org\.apache\.catalina\.valves\.RemoteIpValve/ {
ALREADY=1;
exit;
}
/<\/Host>/ {
print \"$VALVE\" > OUTFILE;
}
{
print > OUTFILE;
}
END {
if (ALREADY==0) {
print \"Replace original file '\" ARGV[1] \"' content\";
system(\"cat \" OUTFILE \" > \" ARGV[1]);
}
print \"Remove temporary file '\" OUTFILE \"'\";
system(\"rm \" OUTFILE);
}
"

awk "$AWK" ${TOMCAT_BASE}/conf/server.xml

# Изменить порт tomcat на 8081

PORT8081="    <Connector port=\\\"8081\\\" protocol=\\\"HTTP/1.1\\\""

AWK8081="BEGIN {
print \"Input file:\", ARGV[1];
OUTFILE = ARGV[1] \"_\";
print \"Temporary output file:\", OUTFILE;
ALREADY=0;
}
/Connector port=\"8081\"/ {
ALREADY=1;
exit;
}
/Connector port=\"8080\"/ {
print \"$PORT8081\" > OUTFILE;
next;
}
{
print > OUTFILE;
}
END {
if (ALREADY==0) {
print \"Replace original file '\" ARGV[1] \"' content\";
system(\"cat \" OUTFILE \" > \" ARGV[1]);
}
print \"Remove temporary file '\" OUTFILE \"'\";
system(\"rm \" OUTFILE);
}
"

awk "$AWK8081" ${TOMCAT_BASE}/conf/server.xml

# Установка Nginx

install nginx
cp ${NGINX_CONFIG_FILE} /etc/nginx/conf.d/softwlc.conf


# Записать wifi-cab secret в параметры EMS, чтобы API работало корректно:
#
#$ sudo cat /etc/eltex-wifi-cab/local_secret into eltex_ems.PARAMS
#+----------------+----------------+----------------------------------+
#| param1         | param2         | value                            |
#+----------------+----------------+----------------------------------+
#| wirelessCommon | wificab.secret | 12b3dc9c63c8c75e307855398ac4fbaf |
#+----------------+----------------+----------------------------------+

CAB_KEY="unknown"
CAB_KEY_FILE="/etc/eltex-wifi-cab/local_secret"

while read -r line; do
    CAB_KEY="$line"
    #echo "secret : $key"
done < "$CAB_KEY_FILE"

mysql -ujavauser -pjavapassword -e "INSERT INTO eltex_ems.PARAMS (id, param1, param2, value) \
 VALUES(1, 'wirelessCommon', 'wificab.secret', '$CAB_KEY') \
 ON DUPLICATE KEY UPDATE param1='wirelessCommon', param2='wificab.secret', value='$CAB_KEY';"


# Перезапустить сервисы
restart ${TOMCAT_SERVICE}
restart nginx
restart eltex-radius
restart eltex-auth-service
restart eltex-pcrf
restart eltex-apb
restart eltex-ngw
restart eltex-portal
# EMS (stop, start)
stop eltex-ems
start eltex-ems

# проверить открытые порты
echo "Waiting 10 seconds.."
sleep 10

echo "Check Tomcat port.."
check_port "8080" check_port_result

echo "Check EMS port (60 seconds for retry).."
CHECK_COUNT=60
PORT_9310_PASSED="1"
for i in $(seq 1 ${CHECK_COUNT}); do
    check_port "9310" check_port_result
    if [[ "$check_port_result" != "0" ]]; then
        sleep 1
    else
        PORT_9310_PASSED="0"
        break
    fi
done

#Если все циклы проверки прошли, а порт 9310 так и не открылся, значит беда, выходим отсюда
if [[ "$PORT_9310_PASSED" != "0" ]] ; then
    echo "${red}Packet eltex-ems out of service (port 9310 not opened)${reset}"
    exit -1
fi


echo "Check EMS internal NBI"
if [[ `curl "localhost:8080/northbound/getVersion"` ]]; then
    echo "${green}Check EMS.NBI on 'localhost' - passed${reset}"
else
    echo "${red}Check EMS.NBI on 'localhost' - error${reset}"
    exit -1
fi

echo "Check mongodb server and database.."
if [[ `mongo pcrf --eval "printjson(db.getCollectionNames())"` ]]; then
    echo "${green}Check mongodb database PCRF - passed${reset}"
else
    echo "${red}Check mongodb database PCRF - error${reset}"
    exit -1
fi

# Всё
    echo "Installation of Eltex SoftWLC finished"
    echo "URLs of SoftWLC components:
Eltex.EMS GUI: http://localhost:8080/ems/jws
    login: admin
    password: <empty>

Portal constructor: http://localhost:8080/epadmin
    login: $ANSWER_AUTH_SERVICE_ADMIN_USER
    password: $ANSWER_AUTH_SERVICE_ADMIN_PASSWORD

Wi-Fi customer cabinet: http://localhost:8080/wifi-cab
    login: $ANSWER_AUTH_SERVICE_ADMIN_USER
    password: $ANSWER_AUTH_SERVICE_ADMIN_PASSWORD"

exit 0
