7.0 KiB
Feature 0016: Prepare the D&D Deployment Playbook for pipeline-dnd
Status: done
Summary
Write and commit the consumer playbook, necessary host variables, dependency
manifest, and concise usage documentation in rakestraw-ansible. This feature
ends with repository preparation. Deployment to a controller or target host
and execution of the pipeline are separate operator work.
Scope
playbooks/pipeline/dnd.ymltargets the existingpipeline-dndalias and appliesrakestraw.dnd.pipeline, using only hosts and roles.- Host choices belong in
inventory/host_vars/pipeline-dnd/: the WhisperX endpoint, initial operatoreric, default campaigndilfs, and credential references. Unknown required values are explained in adjacent comments. - Inherit the reviewed suite's storage, publication, caching, cleanup, and application defaults. Retire obsolete legacy host variables.
- Root
requirements.ymlselects the reviewed public collection snapshot and its role/native collection dependencies, preserving unrelated entries. - Document local validation and eventual operator use. Commit the completed repository changes without requiring remote access or real credentials.
Non-goals
- Installing or updating anything on the operational controller or target.
- Connecting to
pipeline-dnd, validating its platform or sudo access, converging the host, checking runtime identities, or executing a real session. - Obtaining API keys, choosing a Vault password, populating real credentials, or selecting acceptance audio/session data.
- Changing application/role behavior, publishing a new suite release, adding orchestration layers, or retiring the proof-of-concept role/playbook.
Target End State
The committed playbook is:
---
- hosts:
- pipeline-dnd
roles:
- rakestraw.dnd.pipeline
...
Existing connection variables remain in the host's main.yml. Its
narratio.yml contains the following public configuration and comments:
dnd_pipeline_operator_users:
- eric
dnd_pipeline_whisperx_transcribe_url: >-
https://transcription.ai.rakestrawhome.com/transcribe
narratio_campaigns_default_campaign_id: dilfs
# Before deployment, define the four vault_dnd_* variables below in an
# Ansible Vault-encrypted host_vars/pipeline-dnd/vault.yml file.
# Values are not known here; leave these references unresolved until supplied.
# Do not put API keys or object-storage credentials in this plaintext file.
dnd_pipeline_secrets:
AUDITA_LLM_API_KEY: "{{ vault_dnd_audita_llm_api_key }}"
OPENROUTER_API_KEY: "{{ vault_dnd_openrouter_api_key }}"
OBJECT_STORAGE_KEY_ID: "{{ vault_dnd_object_storage_key_id }}"
OBJECT_STORAGE_KEY: "{{ vault_dnd_object_storage_key }}"
The references and comments are a complete deliverable for unknown secrets. No encrypted file, placeholder key, or real credential is required for feature completion. Future operator-supplied values should be Vault-encrypted in Git; the suite's existing restricted runtime secrets files remain the delivery path.
The manifest pins the collection to
2a53979069ff8d091172650729ae2135c1603163, containing pipeline commit
f48008aa38e1c50adde18aa455d12a8ad77023c2 with Narratio v2.1.2.
Its five standalone role dependencies
use their reviewed v0.1.0 tags, with ansible.posix 2.2.0 and
community.general 13.3.0. Suite Git dependencies use public Gitea URLs;
native collections come from Galaxy. Local sibling checkouts are not dependencies.
The runbook explains that the selected collection snapshot still reports
0.1.0, so eventual operator installation must explicitly refresh it from
the pinned commit if an older 0.1.0 is installed. This is an instruction
for future use, not an operation required by this feature.
Repository Ownership
rakestraw-ansible: consumer files, comments, dependency manifest, and runbook.- Workspace: roadmap, staged plan, progress, and independent review record.
- Roles, collection, applications, and assets: read-only contract references.
Constraints and Settled Decisions
The workspace Ansible, testing, and planning policies apply. Feature 0015 has passed review and supplies the required suite interface.
- Keep playbooks minimal and settings in inventory. Preserve
pipeline-dndand its connection identity; do not rename it topipeline.dnd. - Preserve
dilfsusing the existing standalone Narratio variable. Remove legacynarratio_s3_*andnarratio_default_campaign_idhost settings. - Missing operational inputs are documented, not treated as implementation blockers. No remote controller, SSH identity, Vault password, or session is required for repository preparation.
- Local dependency installation and syntax/host-selection checks are permitted. Existing passing evidence may be reused when relevant inputs are unchanged.
ansible-docrendering is not an acceptance gate. Missing role argument descriptions are a separate documentation improvement.
Simplest Viable Implementation
Retain the already-committed minimal playbook, manifest, and public inventory. Add adjacent comments for unresolved credentials, align the runbook with the repository-only scope, perform appropriate local checks, and commit. No new Ansible task, runtime test harness, or deployment automation is needed.
Acceptance Criteria
- The playbook targets only
pipeline-dndand applies only the collection role. - Host inventory expresses the known choices above and documents unknown credentials next to their references without real or fake secret values.
- The dependency manifest contains the reviewed public pins and preserves unrelated dependencies. Public installation and local syntax/host-selection evidence are available; no documentation-rendering check is required.
- The runbook distinguishes repository readiness from future deployment and explains how the operator supplies missing values and eventually invokes it.
- Changes are committed in the owning repositories, with clean working trees for the feature's changes. No controller deployment, target convergence, clean-repeat run, or real pipeline execution is required or claimed.
- Historical role/playbook files remain available.
Dependencies and Follow-up Work
Features 0013–0015 supply public dependencies, operator enrollment, and storage
policy. Consumer preparation was completed in 716a80e, 12b2462, and
7f8353d, and passed independent review with no remediation findings.
Public dependency installation, target-only host listing, syntax checking,
and whitespace validation passed. Subsequent consumer commit 7f4c90a
updates the collection pin for the Narratio v2.1.2 bug fix; collection build
and syntax validation passed. These changes are committed and published.
The operator may later provision Vault values, install dependencies on their controller, deploy to the host, and validate real processing/publication. Those actions require a separate request and are not unfinished Feature 0016 acceptance requirements.