Skip to content

docs: copy-paste commands for deploying from the Galaxy collections - #155

Merged
thiras merged 3 commits into
mainfrom
docs/galaxy-quickstart
Oct 13, 2026
Merged

thiras merged 3 commits into
mainfrom
docs/galaxy-quickstart

Conversation

@thiras

@thiras thiras commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Summary

Since #154, decdn.node and decdn.publisher ship the playbooks, so an operator can deploy from Galaxy with only an inventory. The docs described that in prose; this gives each operator short copy-paste blocks instead.

  • README.md: a new "Quickstart (Ansible, from Galaxy)": copy examples/collection-fleet/, install the collections, fill in the inventory, then first run as root (or the image's sudo user), dry run, deploy.
  • docs/node-operators.md / docs/publishers.md: a "Deploy with Ansible from Galaxy" block each. The publisher table names the collection playbooks. A publisher host's first run is --tags baseline -u root, so a new relay doesn't read node IDs over SSH as root.
  • docs/lifecycle.md: the backup/decommission playbooks, which command fits which host, and where backups land (backups/ beside ansible.cfg).
  • examples/collection-fleet/README.md: the one make → ansible-playbook table the other docs link to, plus what the Makefile checks that a plain ansible-playbook run does not.
  • examples/collection-fleet/ansible.cfg: unparsed_is_failed = True, so a broken inventory fails the run, as the Makefile's ANSIBLE_INVENTORY_UNPARSED_FAILED does.

Test plan

  • make lint (markdownlint and the other pre-commit hooks)
  • Every decdn.<collection>.<playbook> named in the docs is in ansible/galaxy/*/playbooks.txt
  • ansible-config dump in examples/collection-fleet/ shows INVENTORY_UNPARSED_IS_FAILED = True
  • Checked against the repo: inventory example names and MUST-EDIT fields, Makefile targets → playbooks, every publisher play tags its baseline role baseline and the relay's node-ID play does not, so --tags baseline skips it
  • Not run: the quickstart end to end on a fresh host

🤖 Generated with Claude Code

thiras and others added 2 commits October 13, 2026 20:39
Now that decdn.node and decdn.publisher ship the playbooks, give operators
short command blocks for the no-clone path instead of prose:

- README: a "Quickstart (Ansible, from Galaxy)" beside the Compose one.
- node-operators.md / publishers.md: a "Deploy with Ansible from Galaxy"
  block each; the publisher table names the collection playbooks.
- lifecycle.md: the backup/decommission playbooks and how they differ
  from the make targets.
- examples/collection-fleet: one make -> ansible-playbook table the
  other docs link to.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- publishers.md: the publisher example has only the origin live, so
  uncomment the groups you run (not delete them), and edit origin-1/.
  Bootstrap a fresh host with --tags baseline -u root: a relay's full
  run reads every node's ID over SSH and would try them as root.
- make backup/decommission map to decdn.publisher.*, which is what they
  run; decdn.node.* only with decdn.node alone. lifecycle.md says which
  command fits which host, one per line.
- collection-fleet: list what the Makefile checks that a plain
  ansible-playbook run does not; add make deps and INVENTORY rows; its
  ansible.cfg fails on an inventory that does not parse, as the
  Makefile does.
- README quickstart: ansible-core, the -u ubuntu alternative, the admin
  account baseline creates from $USER and ~/.ssh, the host key prompt;
  no echo >> into host_vars.
- Say the repo is cloned once for the templates, not "no clone".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 13, 2026 17:49

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Publisher bootstrap instructions are incomplete and conflict with the copied inventory template.

2 open findings
What changed in this PR

Adds copy-paste workflows for deploying and managing deCDN through its Galaxy collections.

Changes:

  • Documents node and publisher deployment commands.
  • Maps repository Make targets to collection playbooks.
  • Enables strict inventory parsing.
File Description
README.md Adds the Galaxy quickstart.
ansible/​README.md Links collection deployment guidance.
docs/​node-operators.md Adds node deployment commands.
docs/​publishers.md Adds publisher deployment commands.
docs/​lifecycle.md Documents collection lifecycle commands.
examples/​collection-fleet/​README.md Adds command mappings and operational guidance.
examples/​collection-fleet/​ansible.cfg Fails on unparseable inventories.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/publishers.md
Comment thread examples/collection-fleet/README.md Outdated
hosts-publisher.yml.example still told a fresh host's first run to be a
full make deploy-publisher -u root, which on a relay reads every node's
ID over SSH as root, against nodes whose root login is already off. And
collection-fleet's Run block bootstrapped with decdn.node.node, which
skips origins, so a publisher inventory's first run did nothing.

Both now bootstrap with --tags baseline -u root, the collection example
through decdn.publisher.site, which covers every kind of host.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@thiras
thiras merged commit be18b06 into main Oct 13, 2026
91 of 93 checks passed
@thiras
thiras deleted the docs/galaxy-quickstart branch October 13, 2026 18:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants