feat: add professional deployment ensemble, PowerShell orchestration, and CI standards
This commit is contained in:
@@ -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`
|
||||
|
||||
## Категоризация доменов
|
||||
|
||||
- Встроенные категории покрывают базовые рабочие, нейтральные и личные домены.
|
||||
|
||||
@@ -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`
|
||||
@@ -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:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user