LLM-Server: ausführbares Projekt in die Hauptverzeichnisse host/, llm/ und encoding/ aufgeteilt.
Grundkonfiguration des Servers liegt nun unter llm-server/host/ansible/ (vorher llm-server/ansible/), der LLM-Stack-Platzhalter unter llm-server/llm/ und der Encoding-Workload unter llm-server/encoding/. Dokumentation und Pfadverweise (ansible.cfg roles_path, .venv-Tiefe, Markdown-Links) angepasst; Linkvalidator meldet broken_local_links=0. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
+13
-5
@@ -1,9 +1,17 @@
|
||||
# LLM server `ghostnet-ki`
|
||||
|
||||
This host root contains executable infrastructure for the physical server at
|
||||
`10.0.0.90`. Host-specific Ansible inventories, playbooks and roles live under
|
||||
[`ansible/`](ansible/README.md). Reusable roles that are also consumed by
|
||||
other host projects live under [`../shared/ansible/`](../shared/ansible/).
|
||||
This host root contains the executable infrastructure for the physical server at
|
||||
`10.0.0.90`, split into one main directory per task area:
|
||||
|
||||
| Directory | Purpose |
|
||||
| --- | --- |
|
||||
| [`host/`](host/README.md) | shared server baseline: Ansible control project, host roles and inventories |
|
||||
| [`llm/`](llm/README.md) | LLM serving stack (created with the internal AI vertical slice) |
|
||||
| [`encoding/`](encoding/README.md) | CPU-based video encoding workload and its Ansible control project |
|
||||
|
||||
Reusable roles that are also consumed by other host projects live under
|
||||
[`../shared/ansible/`](../shared/ansible/).
|
||||
|
||||
The versioned architecture and operating documentation remains under
|
||||
[`../docs/platform/llm-server/`](../docs/platform/llm-server/README.md).
|
||||
[`../docs/platform/llm-server/`](../docs/platform/llm-server/README.md) and
|
||||
mirrors the same task areas (`host/`, `ai/`, `encoding/`).
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
# Host baseline `ghostnet-ki`
|
||||
|
||||
Shared platform configuration of the physical LLM server at `10.0.0.90`:
|
||||
host identity, Podman runtime, locked workload accounts and AMD GPU device
|
||||
access. This area is common to all workloads on the server.
|
||||
|
||||
The executable Ansible control project lives under
|
||||
[`ansible/`](ansible/README.md). The operating documentation for this area is
|
||||
under
|
||||
[`../../docs/platform/llm-server/host/`](../../docs/platform/llm-server/host/).
|
||||
@@ -1,6 +1,9 @@
|
||||
# LLM server Ansible control project
|
||||
# LLM server host Ansible control project
|
||||
|
||||
This directory contains the reproducible control project for `ghostnet-ki`.
|
||||
This directory contains the reproducible control project for the shared host
|
||||
baseline of `ghostnet-ki`. The LLM-Server host root is split into one main
|
||||
directory per task area: `host/` (this project), `llm/` and `encoding/`; see
|
||||
[../../README.md](../../README.md).
|
||||
The read-only `playbooks/preflight.yml` verifies the documented host identity
|
||||
and hardware. The shared `playbooks/host.yml` applies the host baseline,
|
||||
Podman runtime, workload identities and narrowly scoped AMD device access
|
||||
@@ -33,15 +36,15 @@ continuing.
|
||||
Run the commands from the host project directory:
|
||||
|
||||
```bash
|
||||
cd llm-server/ansible
|
||||
../../.venv/bin/ansible-inventory \
|
||||
cd llm-server/host/ansible
|
||||
../../../.venv/bin/ansible-inventory \
|
||||
--inventory inventories/testing/hosts.yml \
|
||||
--graph
|
||||
../../.venv/bin/ansible-playbook \
|
||||
../../../.venv/bin/ansible-playbook \
|
||||
--inventory inventories/testing/hosts.yml \
|
||||
playbooks/preflight.yml \
|
||||
--syntax-check
|
||||
../../.venv/bin/ansible-playbook \
|
||||
../../../.venv/bin/ansible-playbook \
|
||||
--inventory inventories/testing/hosts.yml \
|
||||
playbooks/preflight.yml
|
||||
```
|
||||
@@ -85,12 +88,12 @@ nevertheless grant root-equivalent deployment access; rotate it when moving the
|
||||
deployment identity to the runner or after any suspected disclosure.
|
||||
|
||||
Load the existing personal administrator key into an SSH agent, then run the
|
||||
bootstrap interactively from `llm-server/ansible/`. Ansible will ask for the
|
||||
personal administrator's existing sudo password:
|
||||
bootstrap interactively from `llm-server/host/ansible/`. Ansible will ask for
|
||||
the personal administrator's existing sudo password:
|
||||
|
||||
```bash
|
||||
ssh-add /path/to/personal-ghost-private-key
|
||||
../../.venv/bin/ansible-playbook \
|
||||
../../../.venv/bin/ansible-playbook \
|
||||
--inventory inventories/bootstrap/hosts.yml \
|
||||
playbooks/bootstrap-deploy-account.yml \
|
||||
--ask-become-pass
|
||||
@@ -103,7 +106,7 @@ changes.
|
||||
After a successful bootstrap, verify the new account independently:
|
||||
|
||||
```bash
|
||||
../../.venv/bin/ansible-playbook \
|
||||
../../../.venv/bin/ansible-playbook \
|
||||
--inventory inventories/host/hosts.yml \
|
||||
playbooks/verify-deploy-access.yml \
|
||||
--extra-vars ansible_user=ansible-deploy \
|
||||
@@ -129,18 +132,18 @@ It does not install software or start services. Use the dedicated host
|
||||
inventory and supply the private deployment key outside the repository:
|
||||
|
||||
```bash
|
||||
../../.venv/bin/ansible-playbook \
|
||||
../../../.venv/bin/ansible-playbook \
|
||||
--inventory inventories/host/hosts.yml \
|
||||
playbooks/host.yml \
|
||||
--syntax-check
|
||||
|
||||
../../.venv/bin/ansible-playbook \
|
||||
../../../.venv/bin/ansible-playbook \
|
||||
--inventory inventories/host/hosts.yml \
|
||||
playbooks/host.yml \
|
||||
--check --diff \
|
||||
--private-key ~/.ssh/id_ed25519_ghostnet_ai_ansible_deploy
|
||||
|
||||
../../.venv/bin/ansible-playbook \
|
||||
../../../.venv/bin/ansible-playbook \
|
||||
--inventory inventories/host/hosts.yml \
|
||||
playbooks/host.yml \
|
||||
--private-key ~/.ssh/id_ed25519_ghostnet_ai_ansible_deploy
|
||||
@@ -211,21 +214,21 @@ It passes `/dev/kfd` and both discovered render nodes with
|
||||
and `llama-server --list-devices` must expose exactly two ROCm devices. No
|
||||
architecture override is set.
|
||||
|
||||
Run the probe from `llm-server/ansible/`:
|
||||
Run the probe from `llm-server/host/ansible/`:
|
||||
|
||||
```bash
|
||||
../../.venv/bin/ansible-playbook \
|
||||
../../../.venv/bin/ansible-playbook \
|
||||
--inventory inventories/host/hosts.yml \
|
||||
playbooks/verify-rocm-container.yml \
|
||||
--syntax-check
|
||||
|
||||
../../.venv/bin/ansible-playbook \
|
||||
../../../.venv/bin/ansible-playbook \
|
||||
--inventory inventories/host/hosts.yml \
|
||||
playbooks/verify-rocm-container.yml \
|
||||
--check \
|
||||
--private-key ~/.ssh/id_ed25519_ghostnet_ai_ansible_deploy
|
||||
|
||||
../../.venv/bin/ansible-playbook \
|
||||
../../../.venv/bin/ansible-playbook \
|
||||
--inventory inventories/host/hosts.yml \
|
||||
playbooks/verify-rocm-container.yml \
|
||||
--private-key ~/.ssh/id_ed25519_ghostnet_ai_ansible_deploy
|
||||
@@ -4,7 +4,7 @@ host_key_checking = True
|
||||
interpreter_python = auto_silent
|
||||
local_tmp = .ansible/tmp
|
||||
retry_files_enabled = False
|
||||
roles_path = roles:../../shared/ansible/roles
|
||||
roles_path = roles:../../../shared/ansible/roles
|
||||
timeout = 15
|
||||
|
||||
[ssh_connection]
|
||||
@@ -0,0 +1,10 @@
|
||||
# LLM serving stack
|
||||
|
||||
This directory will hold the executable infrastructure for the LLM serving
|
||||
stack on `ghostnet-ki`: rootless `llama.cpp` with ROCm, separated into
|
||||
Production and Testing environments.
|
||||
|
||||
It is created with the internal LLM vertical slice (roadmap milestone 2 in
|
||||
[GNAI-001](../../docs/GNAI-001-PLAN_Project-Roadmap.md)). The planned
|
||||
architecture, deployment and serving configuration are documented under
|
||||
[`../../docs/platform/llm-server/ai/`](../../docs/platform/llm-server/ai/README.md).
|
||||
Reference in New Issue
Block a user