# 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/`](../../host/ansible/README.md) 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 encoding directories and proves the separate rootless Podman store. No encoder image, Quadlet, timer or schedule is defined yet; those are open decisions in [`../../../docs/platform/llm-server/encoding/`](../../../docs/platform/llm-server/encoding/GNENC-000-DOC_Index.md). ## Control-node setup Use the shared virtual environment at the repository root (see [`../../host/ansible/README.md`](../../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: ```bash 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.