Repository navigation
docs: copy-paste commands for deploying from the Galaxy collections - #155
Merged
Merged
Conversation
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>
There was a problem hiding this comment.
🟡 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.
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Since #154,
decdn.nodeanddecdn.publishership 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.examples/collection-fleet/, install the collections, fill in the inventory, then first run as root (or the image's sudo user), dry run, deploy.--tags baseline -u root, so a new relay doesn't read node IDs over SSH as root.backups/besideansible.cfg).make→ansible-playbooktable the other docs link to, plus what the Makefile checks that a plainansible-playbookrun does not.unparsed_is_failed = True, so a broken inventory fails the run, as the Makefile'sANSIBLE_INVENTORY_UNPARSED_FAILEDdoes.Test plan
make lint(markdownlint and the other pre-commit hooks)decdn.<collection>.<playbook>named in the docs is inansible/galaxy/*/playbooks.txtansible-config dumpinexamples/collection-fleet/showsINVENTORY_UNPARSED_IS_FAILED = Truebaselineand the relay's node-ID play does not, so--tags baselineskips it🤖 Generated with Claude Code