Ansible role: converge the 5-agent stack on Windows tower hosts #356

Open
opened 2026-06-17 08:13:55 +00:00 by coilysiren · 0 comments
Owner

Context

On 2026-06-17 the 5-agent stack was hand-built on kai-tower-3026 (Claude / Codex / OpenCode / Aider / Goose). Three of the five run on local Qwen3-Coder-30B via Ollama. Per the authoring-vs-rollout split, the hand-built setup needs an ansible role so it converges on Windows hosts instead of being re-done by hand after a rebuild.

What an ansible role should converge

  • Aider: uv tool install --python 3.12 aider-chat, write ~/.aider.conf.yml (model ollama_chat/qwen3-coder:30b) and ~/.aider.model.settings.yml (num_ctx: 32768), set User env OLLAMA_API_BASE=http://127.0.0.1:11434.
  • Goose: scoop install goose-cli, write %APPDATA%\Block\goose\config\config.yaml (provider ollama, model qwen3-coder:30b), and install the OLLAMA_HOST override wrapper (~/.local/bin/goose + goose.cmd) plus the ~/.shellrc.local function. See the goose OLLAMA_HOST gotcha below.
  • OpenCode: scoop install opencode, write ~/.config/opencode/opencode.json (provider ollama -> http://localhost:11434/v1, default ollama/qwen3-coder:30b).
  • Codex: scoop install codex, plus OpenAI auth (out of band, not a secret in the role).

The goose OLLAMA_HOST gotcha (must encode in the role)

Goose honors OLLAMA_HOST and it overrides config. The tower's User-env OLLAMA_HOST=0.0.0.0:11434 is load-bearing (binds the Ollama server to all interfaces for tailnet reach from kai-server) but is not a valid client target for goose. The role must install the localhost override wrapper, NOT change the User env. Full detail: agentic-os-kai .agents/skills/machine-kai-tower-3026/agents-stack.md.

Notes

  • Install steps need scoop/uv, which agents cannot run (lockdown), so this is a converge-on-host role, not an agent task.
  • All five smoke-tested green ("PONG") on 2026-06-17.
## Context On 2026-06-17 the 5-agent stack was hand-built on kai-tower-3026 (Claude / Codex / OpenCode / Aider / Goose). Three of the five run on local Qwen3-Coder-30B via Ollama. Per the authoring-vs-rollout split, the hand-built setup needs an ansible role so it converges on Windows hosts instead of being re-done by hand after a rebuild. ## What an ansible role should converge - **Aider**: `uv tool install --python 3.12 aider-chat`, write `~/.aider.conf.yml` (model `ollama_chat/qwen3-coder:30b`) and `~/.aider.model.settings.yml` (`num_ctx: 32768`), set User env `OLLAMA_API_BASE=http://127.0.0.1:11434`. - **Goose**: `scoop install goose-cli`, write `%APPDATA%\Block\goose\config\config.yaml` (provider ollama, model qwen3-coder:30b), and install the OLLAMA_HOST override wrapper (`~/.local/bin/goose` + `goose.cmd`) plus the `~/.shellrc.local` function. See the goose OLLAMA_HOST gotcha below. - **OpenCode**: `scoop install opencode`, write `~/.config/opencode/opencode.json` (provider ollama -> `http://localhost:11434/v1`, default `ollama/qwen3-coder:30b`). - **Codex**: `scoop install codex`, plus OpenAI auth (out of band, not a secret in the role). ## The goose OLLAMA_HOST gotcha (must encode in the role) Goose honors `OLLAMA_HOST` and it overrides config. The tower's User-env `OLLAMA_HOST=0.0.0.0:11434` is load-bearing (binds the Ollama server to all interfaces for tailnet reach from kai-server) but is not a valid client target for goose. The role must install the localhost override wrapper, NOT change the User env. Full detail: agentic-os-kai `.agents/skills/machine-kai-tower-3026/agents-stack.md`. ## Notes - Install steps need scoop/uv, which agents cannot run (lockdown), so this is a converge-on-host role, not an agent task. - All five smoke-tested green ("PONG") on 2026-06-17.
Sign in to join this conversation.
No description provided.