Модернизация install.sh: добавлена поддержка неинтерактивного режима через переменные окружения
This commit is contained in:
parent
0af50038fe
commit
34bcd34979
175
install.sh
175
install.sh
|
|
@ -23,6 +23,14 @@ if [ "$EUID" -ne 0 ]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
# Проверка переменных окружения для неинтерактивного режима
|
||||
NON_INTERACTIVE=false
|
||||
if [ -n "${DOMAIN:-}" ] && [ -n "${DB_NAME:-}" ] && [ -n "${DB_USER:-}" ] && \
|
||||
[ -n "${DB_PASSWORD:-}" ] && [ -n "${ADMIN_USER:-}" ] && [ -n "${ADMIN_PASSWORD:-}" ]; then
|
||||
NON_INTERACTIVE=true
|
||||
echo "Обнаружен неинтерактивный режим (переменные окружения заданы)"
|
||||
fi
|
||||
|
||||
# Функция генерации случайной строки
|
||||
generate_random() {
|
||||
openssl rand -hex 32
|
||||
|
|
@ -105,15 +113,23 @@ fi
|
|||
echo "[3/7] Настройка Apache..."
|
||||
|
||||
# Определить домен
|
||||
read -p "Введите доменное имя для F7cloud (например: cloud.example.com): " DOMAIN
|
||||
if [ -z "$DOMAIN" ]; then
|
||||
echo "Ошибка: Домен обязателен"
|
||||
exit 1
|
||||
if [ -z "${DOMAIN:-}" ]; then
|
||||
read -p "Введите доменное имя для F7cloud (например: cloud.example.com): " DOMAIN
|
||||
if [ -z "$DOMAIN" ]; then
|
||||
echo "Ошибка: Домен обязателен"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "Используется домен из переменной окружения: $DOMAIN"
|
||||
fi
|
||||
|
||||
# Определить путь установки (DocumentRoot)
|
||||
read -p "Путь установки F7cloud [$INSTALL_DIR]: " INSTALL_PATH
|
||||
INSTALL_PATH=${INSTALL_PATH:-$INSTALL_DIR}
|
||||
if [ -z "${INSTALL_PATH:-}" ]; then
|
||||
read -p "Путь установки F7cloud [$INSTALL_DIR]: " INSTALL_PATH
|
||||
INSTALL_PATH=${INSTALL_PATH:-$INSTALL_DIR}
|
||||
else
|
||||
echo "Используется путь установки из переменной окружения: $INSTALL_PATH"
|
||||
fi
|
||||
|
||||
# Создать виртуальный хост Apache
|
||||
APACHE_SITE_FILE="/etc/apache2/sites-available/f7cloud.conf"
|
||||
|
|
@ -154,33 +170,57 @@ fi
|
|||
# Запрос данных PostgreSQL
|
||||
echo "[4/7] Настройка PostgreSQL..."
|
||||
|
||||
read -p "Хост PostgreSQL [localhost]: " DB_HOST
|
||||
DB_HOST=${DB_HOST:-localhost}
|
||||
|
||||
read -p "Порт PostgreSQL [5432]: " DB_PORT
|
||||
DB_PORT=${DB_PORT:-5432}
|
||||
|
||||
read -p "Имя базы данных: " DB_NAME
|
||||
if [ -z "$DB_NAME" ]; then
|
||||
echo "Ошибка: Имя базы данных обязательно"
|
||||
exit 1
|
||||
if [ -z "${DB_HOST:-}" ]; then
|
||||
read -p "Хост PostgreSQL [localhost]: " DB_HOST
|
||||
DB_HOST=${DB_HOST:-localhost}
|
||||
else
|
||||
echo "Используется хост PostgreSQL из переменной окружения: $DB_HOST"
|
||||
fi
|
||||
|
||||
read -p "Пользователь PostgreSQL: " DB_USER
|
||||
if [ -z "$DB_USER" ]; then
|
||||
echo "Ошибка: Пользователь обязателен"
|
||||
exit 1
|
||||
if [ -z "${DB_PORT:-}" ]; then
|
||||
read -p "Порт PostgreSQL [5432]: " DB_PORT
|
||||
DB_PORT=${DB_PORT:-5432}
|
||||
else
|
||||
echo "Используется порт PostgreSQL из переменной окружения: $DB_PORT"
|
||||
fi
|
||||
|
||||
read -sp "Пароль PostgreSQL: " DB_PASSWORD
|
||||
echo ""
|
||||
if [ -z "$DB_PASSWORD" ]; then
|
||||
echo "Ошибка: Пароль обязателен"
|
||||
exit 1
|
||||
if [ -z "${DB_NAME:-}" ]; then
|
||||
read -p "Имя базы данных: " DB_NAME
|
||||
if [ -z "$DB_NAME" ]; then
|
||||
echo "Ошибка: Имя базы данных обязательно"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "Используется имя базы данных из переменной окружения: $DB_NAME"
|
||||
fi
|
||||
|
||||
read -p "Префикс таблиц [oc_]: " DB_PREFIX
|
||||
DB_PREFIX=${DB_PREFIX:-oc_}
|
||||
if [ -z "${DB_USER:-}" ]; then
|
||||
read -p "Пользователь PostgreSQL: " DB_USER
|
||||
if [ -z "$DB_USER" ]; then
|
||||
echo "Ошибка: Пользователь обязателен"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "Используется пользователь PostgreSQL из переменной окружения: $DB_USER"
|
||||
fi
|
||||
|
||||
if [ -z "${DB_PASSWORD:-}" ]; then
|
||||
read -sp "Пароль PostgreSQL: " DB_PASSWORD
|
||||
echo ""
|
||||
if [ -z "$DB_PASSWORD" ]; then
|
||||
echo "Ошибка: Пароль обязателен"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "Используется пароль PostgreSQL из переменной окружения"
|
||||
fi
|
||||
|
||||
if [ -z "${DB_PREFIX:-}" ]; then
|
||||
read -p "Префикс таблиц [oc_]: " DB_PREFIX
|
||||
DB_PREFIX=${DB_PREFIX:-oc_}
|
||||
else
|
||||
echo "Используется префикс таблиц из переменной окружения: $DB_PREFIX"
|
||||
fi
|
||||
|
||||
# Проверка подключения к БД
|
||||
echo "Проверка подключения к PostgreSQL..."
|
||||
|
|
@ -196,28 +236,54 @@ unset PGPASSWORD
|
|||
# Дополнительные настройки
|
||||
echo "[5/8] Дополнительные настройки..."
|
||||
|
||||
read -p "Директория данных [$DATA_DIR]: " DATA_DIR_INPUT
|
||||
DATA_DIR=${DATA_DIR_INPUT:-$DATA_DIR}
|
||||
if [ -z "${DATA_DIR_INPUT:-}" ]; then
|
||||
read -p "Директория данных [$DATA_DIR]: " DATA_DIR_INPUT
|
||||
DATA_DIR=${DATA_DIR_INPUT:-$DATA_DIR}
|
||||
else
|
||||
DATA_DIR=${DATA_DIR_INPUT:-$DATA_DIR}
|
||||
echo "Используется директория данных из переменной окружения: $DATA_DIR"
|
||||
fi
|
||||
|
||||
read -p "Trusted domains (через запятую) [$DOMAIN]: " TRUSTED_DOMAINS_INPUT
|
||||
TRUSTED_DOMAINS=${TRUSTED_DOMAINS_INPUT:-$DOMAIN}
|
||||
if [ -z "${TRUSTED_DOMAINS_INPUT:-}" ]; then
|
||||
read -p "Trusted domains (через запятую) [$DOMAIN]: " TRUSTED_DOMAINS_INPUT
|
||||
TRUSTED_DOMAINS=${TRUSTED_DOMAINS_INPUT:-$DOMAIN}
|
||||
else
|
||||
TRUSTED_DOMAINS=${TRUSTED_DOMAINS_INPUT:-$DOMAIN}
|
||||
echo "Используются trusted domains из переменной окружения: $TRUSTED_DOMAINS"
|
||||
fi
|
||||
|
||||
read -p "Trusted proxies (IP через запятую, Enter для пропуска): " TRUSTED_PROXIES
|
||||
if [ -z "${TRUSTED_PROXIES:-}" ]; then
|
||||
read -p "Trusted proxies (IP через запятую, Enter для пропуска): " TRUSTED_PROXIES
|
||||
else
|
||||
echo "Используются trusted proxies из переменной окружения: $TRUSTED_PROXIES"
|
||||
fi
|
||||
|
||||
read -p "CLI URL (для occ команд) [https://$DOMAIN]: " CLI_URL
|
||||
CLI_URL=${CLI_URL:-https://$DOMAIN}
|
||||
if [ -z "${CLI_URL:-}" ]; then
|
||||
read -p "CLI URL (для occ команд) [https://$DOMAIN]: " CLI_URL
|
||||
CLI_URL=${CLI_URL:-https://$DOMAIN}
|
||||
else
|
||||
echo "Используется CLI URL из переменной окружения: $CLI_URL"
|
||||
fi
|
||||
|
||||
# Данные администратора
|
||||
echo "[6/8] Создание администратора..."
|
||||
|
||||
read -p "Логин администратора [admin]: " ADMIN_USER
|
||||
ADMIN_USER=${ADMIN_USER:-admin}
|
||||
if [ -z "${ADMIN_USER:-}" ]; then
|
||||
read -p "Логин администратора [admin]: " ADMIN_USER
|
||||
ADMIN_USER=${ADMIN_USER:-admin}
|
||||
else
|
||||
echo "Используется логин администратора из переменной окружения: $ADMIN_USER"
|
||||
fi
|
||||
|
||||
read -sp "Пароль администратора: " ADMIN_PASSWORD
|
||||
echo ""
|
||||
if [ -z "$ADMIN_PASSWORD" ]; then
|
||||
echo "Ошибка: Пароль администратора обязателен"
|
||||
exit 1
|
||||
if [ -z "${ADMIN_PASSWORD:-}" ]; then
|
||||
read -sp "Пароль администратора: " ADMIN_PASSWORD
|
||||
echo ""
|
||||
if [ -z "$ADMIN_PASSWORD" ]; then
|
||||
echo "Ошибка: Пароль администратора обязателен"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "Используется пароль администратора из переменной окружения"
|
||||
fi
|
||||
|
||||
# Генерация секретов
|
||||
|
|
@ -383,15 +449,32 @@ if sudo -u $APACHE_USER php occ maintenance:install \
|
|||
echo "Применение настроек из файла..."
|
||||
USE_TALK_CONFIG_FILE=true
|
||||
else
|
||||
read -p "Настроить F7Talk (Talk)? (y/N): " CONFIGURE_TALK
|
||||
USE_TALK_CONFIG_FILE=false
|
||||
if [[ ! "$CONFIGURE_TALK" =~ ^[Yy]$ ]]; then
|
||||
echo "Пропуск настройки F7Talk"
|
||||
if [ -z "${CONFIGURE_TALK:-}" ]; then
|
||||
read -p "Настроить F7Talk (Talk)? (y/N): " CONFIGURE_TALK
|
||||
USE_TALK_CONFIG_FILE=false
|
||||
if [[ ! "$CONFIGURE_TALK" =~ ^[Yy]$ ]]; then
|
||||
echo "Пропуск настройки F7Talk"
|
||||
USE_TALK_CONFIG_FILE=false
|
||||
fi
|
||||
else
|
||||
USE_TALK_CONFIG_FILE=false
|
||||
if [[ "$CONFIGURE_TALK" =~ ^[Yy]$ ]] || [ "$CONFIGURE_TALK" = "yes" ] || [ "$CONFIGURE_TALK" = "true" ]; then
|
||||
echo "Настройка F7Talk включена через переменную окружения"
|
||||
else
|
||||
echo "Пропуск настройки F7Talk (задано через переменную окружения)"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$USE_TALK_CONFIG_FILE" = true ] || [[ "$CONFIGURE_TALK" =~ ^[Yy]$ ]]; then
|
||||
# Проверка, нужно ли настраивать F7Talk
|
||||
SHOULD_CONFIGURE_TALK=false
|
||||
if [ "$USE_TALK_CONFIG_FILE" = true ]; then
|
||||
SHOULD_CONFIGURE_TALK=true
|
||||
elif [[ "$CONFIGURE_TALK" =~ ^[Yy]$ ]] || [ "$CONFIGURE_TALK" = "yes" ] || [ "$CONFIGURE_TALK" = "true" ]; then
|
||||
SHOULD_CONFIGURE_TALK=true
|
||||
fi
|
||||
|
||||
if [ "$SHOULD_CONFIGURE_TALK" = true ]; then
|
||||
echo "Настройка F7Talk..."
|
||||
|
||||
# Проверка, включён ли Talk
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user