hpresnall / yodeler

Automated creation and setup of a set of Alpine Linux virtual machines

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Yodeler

automated, self-contained, simple Alpine VM setup

this is a work in progress

Yodeler is an opinionated, limited scope, orchestration framework. Yodeler's primary use case is standing up a new KVM host and all the associated VMs needed to run a small, moderate traffic network. The design is primarily based on home lab usage, but could be used for any configuration or network topology. It can automatically create and configure a set of KVM virtual machines running Alpine Linux.

Yodeler attempts to be as self-contained as possible. Configuration can be done on any system that can run Python 3. Running Yodler turns the YAML configuration files into a set of static shell scripts. These scripts can then be run from the Alpine install media on a new physical KVM host. The scripts will install Alpine, configure the host and setup & configure all the required VMs.

Yodeler is a standalone program. No extra software is required to run on each VM. VMs are meant to be immutable. Configuration changes imply destroying the old VM and creating a new one. This is a manual process and there are no processes running on the KVM host that will trigger a VM rebuild.

Yodeler will (eventually) know how to configure the following:

  1. An Alpine based KVM host
  2. Minimal, basic Alpine VMs
  3. Awall based firewalls
  4. Multiple Open vSwitch vswitches with multiple VLANs
  5. Routers based on Shorewall / iptables
  6. DNS / DHCP servers based on PowerDNS and Kea
  7. Dynamic IPv6 prefix delegation with radvd (internal) and dhcpcd (external)
  8. Metrics servers based on Grafana and Prometheus

See the roadmap for plans & progress.

About

Automated creation and setup of a set of Alpine Linux virtual machines

License:Apache License 2.0


Languages

Language:Python 92.0%Language:Shell 8.0%