# PowerShell скрипт для обновления конфигурации Glance # Использование: .\upload-glance-config.ps1 [LOCAL_DIR] [USER] [HOST] param( [string]$LocalDir = ".", [string]$User = "root", [string]$RemoteHost = "192.168.50.114" ) $RemoteGlanceConfig = "/opt/glance/config" $SshOpts = @("-q", "-o", "StrictHostKeyChecking=no", "-o", "UserKnownHostsFile=/dev/null") $ScpOpts = @("-q", "-o", "StrictHostKeyChecking=no", "-o", "UserKnownHostsFile=/dev/null") # Функция для выхода с ошибкой function Exit-OnError { param([string]$Message) Write-Host "Ошибка: $Message" -ForegroundColor Red exit 1 } # Проверяем наличие локальной директории glance if (-not (Test-Path $LocalDir -PathType Container)) { Exit-OnError "Директория $LocalDir не найдена!" } Write-Host "========================================" -ForegroundColor Cyan Write-Host "Обновление конфигурации Glance" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan # 1. Загружаем home.yml на сервер $LocalHomeYml = Join-Path $LocalDir "home.yml" if (Test-Path $LocalHomeYml -PathType Leaf) { Write-Host "`n📄 Загружаем главный файл конфигурации..." -ForegroundColor Yellow & scp @ScpOpts $LocalHomeYml "${User}@${RemoteHost}:${RemoteGlanceConfig}/glance.yml" if ($LASTEXITCODE -ne 0) { Exit-OnError "Ошибка при загрузке home.yml" } Write-Host "✅ home.yml успешно загружен" -ForegroundColor Green } else { Write-Host "⚠️ Файл home.yml не найден в $LocalDir" -ForegroundColor Yellow } # 2. Загружаем директорию widgets рекурсивно $LocalWidgetsDir = Join-Path $LocalDir "widgets" if (Test-Path $LocalWidgetsDir -PathType Container) { Write-Host "`n📦 Загружаем директорию widgets..." -ForegroundColor Yellow # Создаем директорию widgets на сервере, если не существует & ssh @SshOpts "${User}@${RemoteHost}" "mkdir -p ${RemoteGlanceConfig}/widgets" if ($LASTEXITCODE -ne 0) { Exit-OnError "Не удалось создать директорию widgets на сервере" } # Копируем все файлы из widgets рекурсивно & scp @ScpOpts -r "$LocalWidgetsDir/*" "${User}@${RemoteHost}:${RemoteGlanceConfig}/widgets/" if ($LASTEXITCODE -ne 0) { Exit-OnError "Ошибка при загрузке директории widgets" } Write-Host "✅ Директория widgets успешно загружена" -ForegroundColor Green } else { Write-Host "⚠️ Директория widgets не найдена в $LocalDir" -ForegroundColor Yellow } Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Конфигурация успешно обновлена! 🎉" -ForegroundColor Green Write-Host "========================================" -ForegroundColor Cyan Write-Host "Примечание: Glance автоматически перезагрузит конфигурацию" -ForegroundColor Yellow