Skip to content

Example workshop inventory

Copy to workshop.yaml and edit host SSH targets. Full reference: Fleet.

name: suse-virt-rodeo-emea
lab:
  dir: /root/suse-virt-workshop
  source: git:https://github.com/avaleror/suse-virt-workshop.git
  target: baremetal
  concurrency: 4
  ports:
    harvester: 8443
    rancher: 30002
defaults:
  ssh_user: root
hosts:
  - id: student-01
    ssh: 203.0.113.11
    public_ip: 203.0.113.11
    labels: { room: a }
  - id: student-02
    ssh: 203.0.113.12
    public_ip: 203.0.113.12
    labels: { room: a }
rodeo fleet doctor -f workshop.yaml
rodeo fleet deploy -f workshop.yaml -j 4
rodeo fleet status -f workshop.yaml
rodeo fleet diagnose -f workshop.yaml   # pull logs if a host fails
rodeo fleet retry -f workshop.yaml --failed-only
rodeo fleet access -f workshop.yaml

AWS host-acquire (F4a MVP)

# workshop.yaml: hosts: [] until provision fills them
name: demo
lab:
  dir: /root/lab
  profile: harvester
defaults:
  ssh_user: ec2-user              # SLES 16 PAYG default AMI
provider:
  type: aws
  count: 2
  region: eu-central-1
  instance_type: m8id.8xlarge     # catalog 'recommended' for harvester
  # ttl_hours: 10                 # dead-man switch, default 6
  # ami omitted → newest SLES 16 PAYG
  subnet_id: subnet-…
  # security_group_ids: [sg-…]    # omit → rodeo manages one scoped to your IP
hosts: []
# rodeo installed on your laptop with install.sh (see ../install.md)
# Creds: aws login, ~/.aws/credentials, or AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY
# SSH key: auto ~/.rodeo/ssh/id_ed25519 → EC2 key pair "rodeo"
rodeo fleet provision -f workshop.yaml
rodeo fleet deploy -f workshop.yaml     # installs rodeo on each host, starts the lab
rodeo fleet doctor -f workshop.yaml     # needs rodeo on the host, so after deploy
rodeo ssh student-01
rodeo ssh student-01/rancher
rodeo fleet deprovision -f workshop.yaml --yes

See Fleet F4.

Single-host AWS (rodeo up --target aws)

The provider: block is optional here: with none, rodeo picks eu-north-1 (or $RODEO_AWS_REGION), the default VPC subnet and the recommended instance. To set it yourself, it has the same shape:

deployment_target: aws
provider:
  type: aws
  region: eu-central-1
  instance_tier: recommended   # harvester → m8id.8xlarge (see instance_catalog)
  # instance_type: m8id.8xlarge  # or pin explicitly
  # SLES 16 PAYG by default; pin with ami: ami-… if needed
  # ttl_hours: 6                 # dead-man switch, default 6
  subnet_id: subnet-…
  # security_group_ids: [sg-…]   # omit → rodeo manages one scoped to your IP
  ssh_user: ec2-user
  volume_size_gib: 100            # root EBS; lab disks on NVMe via host_context
rodeo up --yes --profile harvester --target aws --instance-tier recommended
rodeo ssh primary
rodeo ssh primary/rancher
# tear down the EC2 host (not nested VMs alone):
rodeo destroy --cloud --yes

AWS is --target aws on the base topology (no separate *-aws profile). In Fleet workshop.yaml, never set lab.target: aws: use lab.target: baremetal on provisioned hosts.