96 lines
3.2 KiB
PowerShell
96 lines
3.2 KiB
PowerShell
# PowerShell скрипт для запуска BGP сервера
|
|
|
|
param(
|
|
[switch]$Build,
|
|
[switch]$Logs,
|
|
[switch]$Monitor
|
|
)
|
|
|
|
Write-Host "=== BGP Server Management ===" -ForegroundColor Green
|
|
|
|
# Проверка Docker
|
|
Write-Host "Checking Docker..." -ForegroundColor Yellow
|
|
try {
|
|
docker --version | Out-Null
|
|
Write-Host "✓ Docker is available" -ForegroundColor Green
|
|
} catch {
|
|
Write-Host "✗ Docker is not available. Please install Docker Desktop." -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
# Проверка Docker Compose
|
|
Write-Host "Checking Docker Compose..." -ForegroundColor Yellow
|
|
try {
|
|
docker-compose --version | Out-Null
|
|
Write-Host "✓ Docker Compose is available" -ForegroundColor Green
|
|
} catch {
|
|
Write-Host "✗ Docker Compose is not available." -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
# Создание необходимых директорий
|
|
Write-Host "Creating directories..." -ForegroundColor Yellow
|
|
if (!(Test-Path "logs")) {
|
|
New-Item -ItemType Directory -Path "logs" | Out-Null
|
|
Write-Host "✓ Created logs directory" -ForegroundColor Green
|
|
}
|
|
|
|
if (!(Test-Path "data")) {
|
|
New-Item -ItemType Directory -Path "data" | Out-Null
|
|
Write-Host "✓ Created data directory" -ForegroundColor Green
|
|
}
|
|
|
|
# Сборка образа если требуется
|
|
if ($Build) {
|
|
Write-Host "Building Docker image..." -ForegroundColor Yellow
|
|
docker-compose build
|
|
if ($LASTEXITCODE -ne 0) {
|
|
Write-Host "✗ Build failed" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
Write-Host "✓ Build completed" -ForegroundColor Green
|
|
}
|
|
|
|
# Остановка существующего контейнера
|
|
Write-Host "Stopping existing container..." -ForegroundColor Yellow
|
|
docker-compose down 2>$null
|
|
Write-Host "✓ Existing container stopped" -ForegroundColor Green
|
|
|
|
# Запуск сервера
|
|
Write-Host "Starting BGP server..." -ForegroundColor Yellow
|
|
docker-compose up -d
|
|
|
|
if ($LASTEXITCODE -eq 0) {
|
|
Write-Host "✓ BGP server started successfully" -ForegroundColor Green
|
|
|
|
# Ожидание запуска
|
|
Write-Host "Waiting for server to initialize..." -ForegroundColor Yellow
|
|
Start-Sleep -Seconds 10
|
|
|
|
# Проверка статуса
|
|
Write-Host "Checking server status..." -ForegroundColor Yellow
|
|
$status = docker-compose ps
|
|
Write-Host $status
|
|
|
|
if ($Logs) {
|
|
Write-Host "Showing logs..." -ForegroundColor Yellow
|
|
docker-compose logs -f bgp-server
|
|
}
|
|
|
|
if ($Monitor) {
|
|
Write-Host "Starting monitoring..." -ForegroundColor Yellow
|
|
docker exec bgp-server python3 /app/scripts/monitor.py
|
|
}
|
|
|
|
} else {
|
|
Write-Host "✗ Failed to start BGP server" -ForegroundColor Red
|
|
Write-Host "Check logs with: docker-compose logs bgp-server" -ForegroundColor Yellow
|
|
exit 1
|
|
}
|
|
|
|
Write-Host "=== Setup Complete ===" -ForegroundColor Green
|
|
Write-Host "Useful commands:" -ForegroundColor Cyan
|
|
Write-Host " View logs: docker-compose logs -f bgp-server" -ForegroundColor White
|
|
Write-Host " Check status: docker-compose ps" -ForegroundColor White
|
|
Write-Host " Stop server: docker-compose down" -ForegroundColor White
|
|
Write-Host " Monitor: docker exec bgp-server python3 /app/scripts/monitor.py" -ForegroundColor White |