- workload_accounts: gn-media (GID 970), gn-download (983), gn-dashboard (984); gn-media als primäre Gruppe der Pipeline-Konten — AUTH_SYS ueber NFSv4 wirkte serverseitig nicht mit Supplementary-Gruppen (Betriebsbefund 30.10.2026); Sudoers des Deploy-Kontos auf (ALL:ALL) verbreitert (become_user) - video_encoding: NFS-Client, Mount-Unit und Pipeline-Layout auf dem Export (10.0.0.2:/media/datenhdd3/Encoding -> /var/lib/ghostnet-pipeline, ausserhalb der Homes); Layout-Anlage als Dienstkonten wegen root_squash; Verifikation der Verzeichnisrechte als gn-encoding (2777/2770/0750/2750, Gruppe 970) - pve_media_cron: Legacy-Crontab (chown root:root + chmod -R 0777 auf allen Medienplatten, alle 10 min) entfernt — haette jedes echte Berechtigungsmodell plattgewalzt; Backup unter /var/backups/ghostnet/pve/; verify-production prueft das Fehlen ab - verify-pipeline-handover.yml: Handover-Simulation über alle Identitaeten (CT-101-.dlc-Drop -> gn-download -> queue -> gn-encoding -> output/state -> gn-dashboard); einmal vollstaendig bestanden (30.10.2026) - Doku: GNENC-000/001/002, GNAI-017 (6.10/6.11), GNMON-001 auf Stand gebracht Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2.2 KiB
Video encoding Ansible control project
This directory contains the reproducible control project for the CPU-based
video encoding workload on ghostnet-ki. It belongs to the encoding/ task
area of the LLM-Server host root; the shared host baseline lives in
../../host/ansible/ and must be applied first.
playbooks/video-encoding.yml applies the video_encoding role: it verifies
the locked gn-encoding account, enforces CPU-only device isolation, manages
the pipeline NFS mount (10.0.0.2:/media/datenhdd3/Encoding at
/var/lib/ghostnet-pipeline) and creates and verifies the pipeline
directory layout on the export as the service accounts. No encoder image,
Quadlet, timer or schedule is defined yet; those are open decisions in
../../../docs/platform/llm-server/encoding/.
playbooks/verify-pipeline-handover.yml exercises the file handover between
the pipeline identities (GNENC-002 sections 5 and 6) on the mounted export;
apply video-encoding.yml first. The SMB write path from CT-101 (guest root)
is simulated separately on CT-101 (GNAI-017 section 6.10).
Control-node setup
Use the shared virtual environment at the repository root (see
../../host/ansible/README.md). The
ansible-deploy private key stays outside this repository:
~/.ssh/id_ed25519_ghostnet_ai_ansible_deploy.
Apply and verify
Run the commands from this directory:
cd llm-server/encoding/ansible
../../../.venv/bin/ansible-playbook \
--inventory inventories/host/hosts.yml \
playbooks/video-encoding.yml \
--syntax-check
../../../.venv/bin/ansible-playbook \
--inventory inventories/host/hosts.yml \
playbooks/video-encoding.yml \
--check --diff \
--private-key ~/.ssh/id_ed25519_ghostnet_ai_ansible_deploy
../../../.venv/bin/ansible-playbook \
--inventory inventories/host/hosts.yml \
playbooks/video-encoding.yml \
--private-key ~/.ssh/id_ed25519_ghostnet_ai_ansible_deploy
Run the final command a second time. The second recap must report changed=0
and failed=0; otherwise the role has not demonstrated convergence.