Skip to content

Get started

Host requirements

You need a Linux host (SLES 16 / Leap 16 recommended) with nested KVM available, root or passwordless sudo, and enough RAM for the profile you pick — see the table below.

Install

bash
$ curl -fsSL https://raw.githubusercontent.com/avaleror/rodeo-cli/main/install.sh | bash

This clones the repo, sets up a Python environment internally, and links rodeo as a system command. No venv to activate, no PATH to set, no sudo prefix.

Deploy

bash
$ rodeo up

That's it. rodeo up checks the host, picks a profile that fits the available RAM, generates ~/.rodeo/secrets.yaml, self-escalates with sudo, deploys, and prints the URLs and credentials to log in. It also wraps itself in a tmux session automatically, so a dropped SSH or Instruqt connection doesn't kill a running deploy — reattach any time with tmux attach -t rodeo-<profile>.

To pick a specific profile instead of letting rodeo up choose:

bash
$ rodeo up --profile rancher # Rancher Prime only, ~10 GiB RAM $ rodeo up --profile harvester-ha # 3-node Harvester HA, ~52 GiB RAM $ rodeo up --profile harvester # 3-node Harvester + Rancher, ~60 GiB RAM $ rodeo up --profile suse-edge # Rancher + Elemental + EIB + edge nodes

Pick a profile

Profile What it builds RAM
rancher Rancher Prime on K3s, single VM ~10 GiB
test 2-node Harvester cluster, no Rancher ~36 GiB
harvester-ha 3-node Harvester HCI, no Rancher ~52 GiB
harvester-2n 2-node Harvester HCI + Rancher ~56 GiB
harvester 3-node Harvester HCI + Rancher ~60 GiB
suse-edge Rancher + Elemental + EIB + edge nodes ~40 GiB

Full walkthroughs live in the profile guides: Rancher Prime, Harvester HCI, SUSE Edge.

Day-2 operations

Once a lab is up, it's something you operate, not a one-shot script:

bash
$ rodeo status # what's deployed, what's drifted $ rodeo stop / start # graceful, infra-aware $ rodeo set-password # rotate admin credentials, no redeploy $ rodeo install-extensions # reconcile UI extensions post-deploy $ rodeo clean # tear the lab down

Want a lab that isn't bundled?

rodeo new mylab --from harvester scaffolds an editable profile under ~/.rodeo/profiles/mylab. Edit the YAML, run rodeo up --profile mylab, and the lab converges to match. See Create your own rodeo.

Many hosts (workshop fleet)

To deploy the same lab on a list of remote KVM hosts from your laptop (bare metal today), use rodeo fleet with a workshop.yaml inventory — doctor, status, deploy, diagnose, retry, and an access URL sheet.

Shipped: F0–F2.1 (JSON reports, fan-out, deploy/retry/access/diagnose).
Roadmap: F4a AWS provision shipped (MVP); next GCP → Vultr Bare Metal → Hetzner (F4b–d).

Single-host AWS

rodeo up --target aws provisions one EC2 KVM host then remote-deploys. Pick --instance-tier budget|recommended|performance (or set provider.instance_type); rodeo checks regional availability before create. The host installs rodeo-cli from GitHub — add --ref <branch|tag|sha> to pin it, or to push a new commit onto a host that already has rodeo. See provider fields.

pip install 'rodeo-cli[aws]'
rodeo up --yes --profile harvester --target aws --instance-tier recommended

See Fleet and Fleet roadmap.

Something not working?

Check the Troubleshooting runbook — it covers stuck deploys, timed-out Harvester installs, unreachable VIPs, and a handful of other issues hit on real hosts.