Ludus
The easiest way to deploy dev/test infrastructure
“I’m not going to need this again.. right?”
Maybe you were going to try a new tool, dig for logs or analyse some malware, but if you’re anything like me, you’ve spent countless hours on configuring, fixing, trashing, and pulling your hair out over lab environments. You just know that it’s going to be a at least a couple of hours of hands on work before you get to do the thing you set out to do in the first place.
Well, wave goodbye to all that and say hello to ludus.
Building on Proxmox VE, ludus makes deploying test environments a breeze.
Ludus consists of three main components we as users need to be familiar with:
Template anatomy
A VM template is essentially a blueprint that we use to create clones in a way that avoids having to repeat time consuming tasks like OS installation. Ludus relies on packer to build VM templates and consist of text files called packer files .pkr.hcl
, and Autounattend.xml
/preseed.cfg
.
The packer file is where we define things like disk size, source ISO (and where to get it), resource allocation, VM-name and so on, while the Autounattend or preseed file (depending on the OS) are native ways to preconfigure windows/linux installations.
Packer can then use powershell, bash or even Ansible as a provisioner to perform post-installation tasks, like regenerating host keys, installing drivers or disabling hibernation.
This makes it super easy to recreate picture perfect copies of machines. A clean VM is never far off, and as long as you hold on to your template, you can destroy and rebuild the VM template – you can deploy an identical VM to the one you destroyed. What used to take hours of active, hands-on configuration can be accomplished in just a few seconds with ludus. Though building the template may take some time, it’s all automated
The Roles Role
Ludus roles are collections of ansible tasks that can be assigned to hosts in a way that allows us to configure specifics for each host, like setting the keyboard layout. Roles gives a lot of room for custom deployments and are relatively easy to get started with. Just copy an existing role (I’ll get to this in a later post) and modify as you want.
Recent’ish ludus versions also support setting global variables, making it eaven easier to deploy, lets say a SIEM to your ludus range!
TBC …
Check back for updates on
- Roles
- Ranges
- My repository of configs