Skip to content

Repository files navigation

conduct

Multi-server orchestrator for the Amadla ecosystem.

Coordinates tool execution (lay, enjoin, weaver, waiter) across multiple remote nodes via SSH, respecting dependency order and injecting cross-node data.

Usage

# Deploy from topology file
conduct deploy -f topology.yaml
# Preview without executing
conduct deploy -f topology.yaml --dry-run
# Show deployment status
conduct status wordpress-cluster
# Run command on a specific node
conduct exec wordpress-cluster db-server -- systemctl status postgresql
# Remove deployment record
conduct destroy wordpress-cluster

Topology Format

name: wordpress-clusternodes:
- name: db-serverhost: 10.0.0.1user: rootkey: ~/.ssh/id_rsaroles:
- tool: lay
- tool: enjoin
- name: app-serverhost: 10.0.0.2user: rootkey: ~/.ssh/id_rsadepends_on:
- db-servervars:
db_host: "{{ db-server.host }}"roles:
- tool: lay
- tool: weaver
- tool: waiter

How It Works

  1. Parses topology YAML/JSON defining nodes and their roles
  2. Resolves node dependencies via topological sort
  3. Interpolates cross-node variables (e.g., {{ db-server.host }} -> 10.0.0.1)
  4. Executes tools on each node via SSH in dependency order
  5. Tracks deployment state for status/destroy commands

License

MIT

About

🐙 Multi-server orchestrator — coordinates waiter/lay across distributed nodes 🐙

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages