feat: add professional deployment ensemble, PowerShell orchestration, and CI standards

This commit is contained in:
igor04091968
2026-04-25 15:29:38 +03:00
parent 0821de0964
commit 63904d2548
17 changed files with 628 additions and 3 deletions
+17
View File
@@ -4,7 +4,9 @@
- `windows/deploy-single-user.ps1` — развёртывание для одного пользователя.
- `windows/deploy-domain-users.ps1` — массовое развёртывание по списку пользователей.
- `windows/deploy-ensemble.ps1` — orchestration-скрипт полного цикла (deploy + hardening + validation).
- `windows/hardening-recovery.ps1` — повторная регистрация задач, ACL и recovery-loop.
- `windows/validate-deployment.ps1` — машинная проверка состояния и JSON-отчёт.
- `windows/browser-domains-native-collector.ps1` — native collector доменов браузера с категоризацией.
- `windows/web-category-rules.example.json` — пример кастомных правил категоризации.
@@ -88,6 +90,21 @@ CSV-формат: колонка `User`, `Username`, `SamAccountName` или `Lo
Если список уже содержит `DOMAIN\user`, параметр `-Domain` не нужен.
## Ensemble deploy (production workflow)
```powershell
.\windows\deploy-ensemble.ps1 `
-ServerHost aw.example.local `
-ServerPort 5600 `
-Domain CONTOSO `
-Users user1,user2,user3,user4,user5 `
-ValidateAfterDeploy
```
Итоговый отчёт:
- `C:\ProgramData\ActivityWatch\ensemble-report-YYYYMMDD-HHMMSS.json`
## Категоризация доменов
- Встроенные категории покрывают базовые рабочие, нейтральные и личные домены.
+49
View File
@@ -0,0 +1,49 @@
# Windows deployment ensemble (PowerShell)
Документ фиксирует профессиональный workflow развёртывания и контроля ActivityWatch-клиентов в домене Windows.
## Полные пути
- `/home/igor/tmp/AWatch-rus/windows/deploy-ensemble.ps1`
- `/home/igor/tmp/AWatch-rus/windows/deploy-domain-users.ps1`
- `/home/igor/tmp/AWatch-rus/windows/deploy-single-user.ps1`
- `/home/igor/tmp/AWatch-rus/windows/hardening-recovery.ps1`
- `/home/igor/tmp/AWatch-rus/windows/validate-deployment.ps1`
- `/home/igor/tmp/AWatch-rus/windows/ActivityWatch.Windows.Common.psm1`
- `/home/igor/tmp/AWatch-rus/windows/ActivityWatch.Windows.Common.psd1`
## Рекомендованный запуск
```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
C:\Deploy\AWatch-rus\windows\deploy-ensemble.ps1 `
-ServerHost 10.10.10.13 `
-ServerPort 5600 `
-Domain AD `
-Users user1,user2,user3,user4,user5 `
-ValidateAfterDeploy
```
## Что делает `deploy-ensemble.ps1`
1. Нормализует список пользователей (`DOMAIN\user`).
2. Вызывает массовый деплой `deploy-domain-users.ps1`.
3. Применяет hardening/recovery (`hardening-recovery.ps1`), если не задан `-SkipHardening`.
4. Опционально запускает контроль (`validate-deployment.ps1`) при `-ValidateAfterDeploy`.
5. Пишет итоговый JSON-отчёт в `C:\ProgramData\ActivityWatch\ensemble-report-*.json`.
## Быстрый health-check
```powershell
$report = C:\Deploy\AWatch-rus\windows\validate-deployment.ps1 `
-ConfigPath C:\ProgramData\ActivityWatch\deployment-config.json
$report | ConvertTo-Json -Depth 12
```
Ожидается:
- `overallOk = true`
- нет missing-файлов
- все `ActivityWatch*` Scheduled Task присутствуют
- активны процессы `aw-watcher-afk` и `aw-watcher-window`
+13 -1
View File
@@ -1,5 +1,17 @@
# Windows validation
## Автоматическая проверка (рекомендуется)
```powershell
$report = .\windows\validate-deployment.ps1 `
-ConfigPath C:\ProgramData\ActivityWatch\deployment-config.json
$report | ConvertTo-Json -Depth 12
```
Критерий:
- `overallOk = true`
## Базовая проверка после развёртывания
### 1. Проверить установленные файлы
@@ -59,7 +71,7 @@ Invoke-WebRequest https://aw.example.local/api/0/info
- `aw-watcher-window_<hostname>`
- `aw-watcher-web-edge_<hostname>` или другой browser bucket
- `aw-watcher-web-category_<hostname>`
- `aw-detmir-web-category_<hostname>`
Проверка через API: