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.json - Use
{{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.