Files
XC_VM/tools/test-install/auto_install.sh
T
Divarion-D a113fb3ec9 refactor: remove legacy proxy files, migrate all callers to console.php
- Delete src/status, src/tools, src/crons/epg.php (logic already in CLI commands)
- Update BalancerCommand: fix remote file_exists to SSH test -f, fix stripos check
- Update StartupCommand, UpdateCommand: use PHP_BIN + console.php
- Update dashboard.php: replace hardcoded sudo php with PHP_BIN
- Update install/test_installer: sentinel console.php, exec paths
- Update Makefile: remove status/tools from LB_ROOT_FILES and set_permissions
- Update docs: migration_guide, update-system (EN/RU)
- Update test-install: README.md, auto_install.sh
2026-03-18 20:32:51 +03:00

84 lines
2.5 KiB
Bash

#!/bin/bash
# auto_install.sh — автоматическая установка XC_VM в контейнере
# Подаёт ответы на интерактивные вопросы инсталлятора
set -e
INSTALL_DIR="/opt/xcvm-install"
cd "$INSTALL_DIR"
# Проверяем наличие XC_VM.zip
if [[ ! -f XC_VM.zip ]]; then
echo "ERROR: XC_VM.zip not found in $INSTALL_DIR"
exit 1
fi
echo "==> Распаковка XC_VM.zip..."
unzip -o XC_VM.zip
# Проверяем что инсталлятор и архив на месте
if [[ ! -f install ]]; then
echo "ERROR: install script not found after unzip"
exit 1
fi
if [[ ! -f xc_vm.tar.gz ]]; then
echo "ERROR: xc_vm.tar.gz not found after unzip"
exit 1
fi
echo "==> Запуск инсталлятора..."
# Ответы на интерактивные вопросы:
# 1) "Continue and overwrite? (Y / N)" — Y (на случай если /home/xc_vm/ существует)
# 2) "HTTP port (default 80):" — пустая строка (default 80)
# 3) "HTTPS port (default 443):" — пустая строка (default 443)
# 4) "Overwrite sysctl configuration? (Y / N):" — N (sysctl нельзя менять в контейнере)
printf 'Y\n\n\nN\n' | python3 install 2>&1 | tee /var/log/xcvm_install.log
EXIT_CODE=${PIPESTATUS[1]}
echo ""
echo "========================================="
if [[ $EXIT_CODE -eq 0 ]]; then
echo " INSTALL COMPLETED (exit code: 0)"
else
echo " INSTALL FAILED (exit code: $EXIT_CODE)"
fi
echo "========================================="
echo ""
# Проверяем что ключевые файлы на месте
echo "==> Post-install verification:"
CHECKS=(
"/home/xc_vm/console.php"
"/home/xc_vm/console.php"
"/home/xc_vm/autoload.php"
"/home/xc_vm/bootstrap.php"
"/home/xc_vm/config/config.ini"
"/home/xc_vm/bin/nginx/sbin/nginx"
"/home/xc_vm/bin/php/bin/php"
"/home/xc_vm/bin/redis/redis-server"
)
PASS=0
FAIL=0
for f in "${CHECKS[@]}"; do
if [[ -e "$f" ]]; then
echo " [OK] $f"
((PASS++))
else
echo " [FAIL] $f"
((FAIL++))
fi
done
echo ""
echo "Results: $PASS passed, $FAIL failed out of ${#CHECKS[@]} checks"
# Проверяем сервисы (если systemd работает)
if command -v systemctl &>/dev/null && systemctl is-system-running &>/dev/null 2>&1; then
echo ""
echo "==> Service status:"
systemctl status xc_vm --no-pager 2>/dev/null || echo " xc_vm service not running (may need manual start)"
fi
exit $EXIT_CODE