mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-11 21:26:44 +00:00
An inventory group web-app-cst-<name> with applications.<id>.custom: true and
a pinned source {url, version, path} is pulled into roles/ before the play,
read raw (Jinja, Ansible tags and credential URLs refused), placed through a
staging directory under an exclusive lock, and owned by a marker that names
its own directory, so a pull or roles-clean never replaces or removes a
directory it did not place and a failed pull leaves roles/ as it was.
Directory inventories, host lists and non-UTF-8 files behave as Ansible
reads them; generated test deploys pass --skip-pull. make roles-pull,
roles-clean and roles list, INFINITO_EXTRA_MOUNTS for local sources, the
web-app-cst category, the reserved prefix lint and a central
repository_files() that also yields the gitignored custom roles let every
lint scan them like in-tree roles. Supersedes the uncommitted 045 External
Roles draft and reuses its fetch, sync and mount design.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Local Deploy Scripts
This directory holds the executable local deploy flows under scripts/tests/deploy/local/deploy/.
For other local helpers, use ../README.md. For the canonical Make target index that invokes these helpers, see make.md.
Prerequisites
- Run commands from the repository root.
- Docker and Docker Compose are available locally.
jqis installed for the app-discovery step inapps/initialize/all.sh.- If you run scripts directly, load the defaults with
source scripts/meta/env/all.sh.
Naming
The apps/ subtree is split by verb (the user intent) and scope:
initialize/creates or refreshes the inventory; existing entity state is kept.reinstall/recreates the inventory and purges existing entities first.update/reuses the already-initialized inventory.all.shcovers every discovered application;selection.shcovers one or more apps passed viaapps(or a positional argument).
The bundles/ subtree mirrors the same axes for inventory bundles (fresh.sh ≈ initialize, update.sh ≈ update).
The container/ subtree holds the in-container halves invoked by the host wrappers and follows the same verb/scope layout; see container/.
Entry Points
| Entry point | What it does | Key inputs | Notes |
|---|---|---|---|
apps/initialize/all.sh |
Discovers apps, creates devices.yml, and deploys all discovered apps. |
INFINITO_DISTRO, INFINITO_INVENTORY_DIR |
Fresh all-app inventory path. |
apps/initialize/selection.sh <app-id> |
Creates devices.yml for one or more apps and deploys them. |
apps=<app-id> |
Init and deploy path for a specific app set. |
apps/reinstall/selection.sh |
Recreates devices.yml and deploys one or more apps twice with ASYNC_ENABLED=false and ASYNC_ENABLED=true. |
INFINITO_DISTRO, INFINITO_INVENTORY_DIR, apps |
Baseline and recovery path; purges entities first. |
apps/update/all.sh |
Deploys every app from an existing inventory. | INFINITO_DISTRO, INFINITO_INVENTORY_DIR |
Requires ${INFINITO_INVENTORY_DIR}/devices.yml and .password. |
apps/update/selection.sh |
Runs a targeted infinito administration deploy dedicated for one or more apps. |
apps, INFINITO_CONTAINER, INFINITO_DEBUG, INFINITO_INVENTORY_DIR |
Reuses devices.yml. |