Files

Ansible ensemble for AWatch-rus

Эта директория содержит Ansible-ensemble для двух сценариев:

  • деплой на уже существующий Debian host/CT;
  • полный цикл с нуля в Proxmox: создание CT + bootstrap + установка ActivityWatch + RU patch.
  • централизованный деплой Windows phase-2 collectors по WinRM.
  • deployment внешнего pfSense poller'а на Debian/Ubuntu utility VM.

Файлы

  • /home/igor/tmp/AWatch-rus/ansible/deploy_aw_server.yml — основной playbook.
  • /home/igor/tmp/AWatch-rus/ansible/provision_proxmox_ct_and_deploy_aw.yml — full-stack playbook для Proxmox.
  • /home/igor/tmp/AWatch-rus/ansible/provision_proxmox_ct_matrix_and_deploy_aw.yml — массовый full-stack playbook (несколько CT).
  • /home/igor/tmp/AWatch-rus/ansible/deploy_aw_windows_phase2.yml — WinRM playbook для развёртывания phase-2 Windows collector'ов.
  • /home/igor/tmp/AWatch-rus/ansible/deploy_aw_pfsense_poller.yml — deployment pfSense poller'а.
  • /home/igor/tmp/AWatch-rus/ansible/install_full_stack.yml — полный установочный playbook (оркестратор всех этапов).
  • /home/igor/tmp/AWatch-rus/ansible/inventory.example.ini — шаблон inventory.
  • /home/igor/tmp/AWatch-rus/ansible/group_vars/all.example.yml — шаблон переменных.
  • /home/igor/tmp/AWatch-rus/ansible/group_vars/proxmox.example.yml — шаблон переменных CT в Proxmox.
  • /home/igor/tmp/AWatch-rus/ansible/group_vars/proxmox-matrix.example.yml — шаблон матрицы CT.
  • /home/igor/tmp/AWatch-rus/ansible/group_vars/windows.example.yml — шаблон переменных Windows phase-2.
  • /home/igor/tmp/AWatch-rus/ansible/group_vars/pfsense-poller.example.yml — шаблон переменных pfSense poller'а.

Быстрый запуск

  1. Скопируйте шаблоны:
    • cp /home/igor/tmp/AWatch-rus/ansible/inventory.example.ini /home/igor/tmp/AWatch-rus/ansible/inventory.ini
    • cp /home/igor/tmp/AWatch-rus/ansible/group_vars/all.example.yml /home/igor/tmp/AWatch-rus/ansible/group_vars/all.yml
  2. Заполните значения в inventory.ini и group_vars/all.yml.
  3. Запустите:
cd /home/igor/tmp/AWatch-rus/ansible
ansible-playbook -i inventory.ini deploy_aw_server.yml

Полный установочный playbook (всё за один запуск)

Если нужно прогнать полный цикл одной командой:

cd /home/igor/tmp/AWatch-rus/ansible
ansible-playbook -i inventory.ini install_full_stack.yml

Что делает:

  • provision_proxmox_ct_and_deploy_aw.yml (если есть хосты в группе [proxmox]);
  • deploy_aw_server.yml (группа [aw_server]);
  • deploy_aw_windows_phase2.yml (группа [aw_windows]);
  • deploy_aw_pfsense_poller.yml (группа [aw_pfsense_pollers]).

Пустые группы в inventory.ini безопасны: соответствующий play будет пропущен.

Полный запуск с нуля в Proxmox

  1. Подготовьте inventory и vars:
    • cp /home/igor/tmp/AWatch-rus/ansible/inventory.example.ini /home/igor/tmp/AWatch-rus/ansible/inventory.ini
    • cp /home/igor/tmp/AWatch-rus/ansible/group_vars/all.example.yml /home/igor/tmp/AWatch-rus/ansible/group_vars/all.yml
    • cp /home/igor/tmp/AWatch-rus/ansible/group_vars/proxmox.example.yml /home/igor/tmp/AWatch-rus/ansible/group_vars/proxmox.yml
  2. Заполните group_vars/proxmox.yml и group_vars/all.yml.
  3. Запустите playbook:
cd /home/igor/tmp/AWatch-rus/ansible
ansible-playbook -i inventory.ini provision_proxmox_ct_and_deploy_aw.yml

Массовый запуск (матрица CT)

  1. Подготовьте матрицу:
    • cp /home/igor/tmp/AWatch-rus/ansible/group_vars/proxmox-matrix.example.yml /home/igor/tmp/AWatch-rus/ansible/group_vars/proxmox-matrix.yml
  2. Заполните proxmox-matrix.yml.
  3. Запустите:
cd /home/igor/tmp/AWatch-rus/ansible
ansible-playbook -i inventory.ini provision_proxmox_ct_matrix_and_deploy_aw.yml

Windows phase-2 rollout (WinRM)

  1. Подготовьте inventory и vars:
    • cp /home/igor/tmp/AWatch-rus/ansible/inventory.example.ini /home/igor/tmp/AWatch-rus/ansible/inventory.ini
    • cp /home/igor/tmp/AWatch-rus/ansible/group_vars/windows.example.yml /home/igor/tmp/AWatch-rus/ansible/group_vars/windows.yml
  2. Заполните inventory.ini (секция [aw_windows]) и group_vars/windows.yml.
    • Для русской локализации Windows часто нужен ansible_user=Администратор (а не Administrator).
    • Если WinRM закрыт, playbook не сможет стартовать и нужно сначала открыть 5985/5986 и wsman.
  3. Запустите:
cd /home/igor/tmp/AWatch-rus/ansible
ansible-playbook -i inventory.ini deploy_aw_windows_phase2.yml

Playbook:

  • выгружает windows/* toolkit на целевой хост в C:\Deploy\AWatch-rus\windows;
  • выполняет deploy-ensemble.ps1 (deploy + hardening/recovery) с phase-2 policy/rules;
  • после deploy принудительно запускает ActivityWatch Recovery и все ActivityWatch Launch * задачи;
  • выполняет API smoke-check bucket aw-watcher-afk_SHARKON2025 и ожидает свежие not-afk события;
  • запускает validate-deployment.ps1;
  • забирает JSON-отчёт в локальную директорию (/tmp/aw-rus-validation по умолчанию).

Дополнительные флаги:

  • aw_windows_afk_enabled: false — не запускать aw-watcher-afk;
  • aw_windows_window_enabled: false — не запускать aw-watcher-window;
  • aw_windows_incident_capture_enabled: false — отключить блок incidentCapture;
  • aw_windows_incident_screenshot_enabled: false — не делать скриншот при DLP-инциденте;
  • aw_windows_incident_artifacts_root: 'C:\...\incident-artifacts' — переопределить путь артефактов;
  • aw_windows_skip_hardening: true — пропустить hardening-recovery.ps1 внутри ensemble-скрипта.

pfSense poller rollout

  1. Подготовьте vars:
    • cp /home/igor/tmp/AWatch-rus/ansible/group_vars/pfsense-poller.example.yml /home/igor/tmp/AWatch-rus/ansible/group_vars/pfsense-poller.yml
  2. Добавьте inventory group [aw_pfsense_pollers].
  3. Запустите:
cd /home/igor/tmp/AWatch-rus/ansible
ansible-playbook -i inventory.ini deploy_aw_pfsense_poller.yml

Playbook:

  • ставит python3;
  • копирует pfsense-aw-poller.py;
  • пишет /etc/aw-pfsense/poller.json;
  • поднимает aw-pfsense-poller.service.

Результат

  • Установлен ActivityWatch Server.
  • Создан systemd-unit activitywatch-server.service.
  • Установлен RU Web UI patch.
  • Для Web UI используется checksum-based cache-bust для ru-patch-v5.js и sw-cleanup.js, чтобы браузер не держал старую DLP/русскую статику после деплоя.
  • На #/home Web UI делит хосты на Windows RDP и Virtual servers + Proxmox.
  • Выполнена валидация API http://127.0.0.1:5600/api/0/info.
  • Для full-stack сценария CT создаётся автоматически через pct create.