Skip to content

TroutSoftware/labomatic

Repository files navigation

# Lab-O-Matic: A Language Description for Labs

labomatic is a tool to configure and run a lab.
It aims to provide a singular point in the lab creation space:
 - use configuration-as-code (versioning, …)
 - the network structure is described using Python (Starlark)
 - all systems are image-based, with a new well-known images
 - we only aim to emulate SME-level infrastructure
 - QEMU + netlink
 - minimalist

Other tools (netlab, containerlab, …) will make different choices.

## First install (Ubuntu)

NOTE: all those steps are meant to be automated too.

The Ubuntu image from upstream needs to be configured to accept authentication.

https://cloud-images.ubuntu.com/minimal/releases/jammy/release/ubuntu-22.04-minimal-cloudimg-amd64.img

2. Generate the seed image

cloud-localds seed.img user-data.yaml metadata.yaml

3. Run the VM

sudo qemu-system-x86_64  \
  -machine accel=kvm,type=q35 \
  -cpu host \
  -m 2G \
  -nographic \
  -device virtio-net-pci,netdev=net0 \
  -netdev user,id=net0 \
  -drive if=virtio,format=qcow2,file=/tmp/ubuntu-22.04-minimal-cloudimg-amd64.img \
  -drive if=virtio,format=raw,file=seed.img

run 

sudo systemctl disable systemd-networkd-wait-online.service
sudo systemctl mask systemd-networkd-wait-online.service

About

Set up labs with QEMU and namespaces

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published