Ludus Range Configuration
Use this skill to build safe, valid Ludus YAML configurations and explain tradeoffs in topology, networking, and role design.
Key Principles
Always suggest the YAML schema validation header at the top of configs:
# yaml-language-server: $schema=https://docs.ludus.cloud/schemas/range-config.jsonUse
{{ range_id }}template strings in vm_name and hostname fields. This resolves to the user's range ID (e.g., "JS").Windows hostnames are limited to 15 characters due to NETBIOS.
VLANs must be 2-255 and become the third octet of the VM's IP (e.g., vlan 10 = 10.X.10.Y).
ip_last_octet must be unique within a VLAN.
Set
linux: truefor Linux VMs,windows:key for Windows VMs,macOS: truefor macOS VMs.Domain roles are:
primary-dc,alt-dc, ormember.role_vars must be a dictionary - do not use hyphens to prefix variables.
Roles must exist on the server before deploy — verify installed roles and add any that are missing.
Workflow
- Clarify the target environment and intended use case.
- Define required VMs and roles.
- Verify that required templates are available on the server.
- Build or revise YAML in small, valid increments.
- Propose network rules and testing behavior appropriate for the scenario.
- Verify that required Ansible roles/collections are installed; recommend any that need to be added.
- Validate structure and values against the schema reference.
References
- Use
references/schema.mdfor full schema details, valid values, defaults, and complete examples. - Use
https://docs.ludus.cloud/docs/configurationfor official configuration guidance. - Use
https://docs.ludus.cloud/schemas/range-config.jsonfor schema-backed validation.