Introduction¶
The Solti-Platforms collection provides automated infrastructure provisioning and management for virtual machines and cloud platforms.
What is Solti-Platforms?¶
Solti-Platforms is an Ansible collection that automates:
- VM Template Creation: Build cloud-init enabled templates from official cloud images
- VM Provisioning: Smart VM creation with auto-naming and auto-VMID assignment
- Cloud Platforms: Linode instance management
- Kubernetes: K3s cluster deployment
Why Use Solti-Platforms?¶
Manual VM Creation Problems¶
Without automation, creating VMs involves:
- Downloading cloud images manually
- Importing disks with
qm importdisk - Configuring cloud-init settings
- Managing VMID conflicts
- Tracking which templates exist
- Repeating steps for every distribution
This is error-prone, time-consuming, and doesn't scale.
Solti-Platforms Solution¶
The collection automates everything:
# Build a template (one command)
./manage-platform.sh -h magic -t rocky9 proxmox_template build
# Create a VM (everything auto-generated)
./manage-platform.sh -h magic proxmox_vm create \
-e vm_template_distribution=rocky9
Results:
- Template built with consistent configuration
- VM named rocky9-260125 at VMID 500
- Cloud-init configured with your SSH key
- Ready to boot in seconds
Key Features¶
Smart Automation¶
- Auto-naming: VMs named
{distribution}-{YYMMDD} - Auto-VMID: Finds next available VMID in range
- Template Discovery: Select templates by distribution, name, or VMID
- Validation: Fails early if template doesn't exist
Production Ready¶
- UEFI/Secure Boot: Pre-enrolled keys for Rocky Linux
- Cloud-init: SSH keys, users, networking pre-configured
- Linked Clones: Fast, space-efficient VM creation
- Disk Management: Smart minimum sizing without shrinking
Reproducible Infrastructure¶
- Consistent templates across environments
- Version-controlled configuration
- Idempotent operations
- Verification tasks for validation
Use Cases¶
Development Labs¶
Quickly spin up VMs for testing:
Production Deployments¶
Explicit configuration for production:
vm_template_distribution: rocky10
vm_name: "prod-web-01"
vm_vmid: 600
vm_disk_min_size: "100G"
vm_memory: 16384
CI/CD Pipelines¶
Automated testing environments:
# Create test VM
./manage-platform.sh -h magic proxmox_vm create \
-e vm_template_distribution=debian12
# Run tests
ansible-playbook -i vm-inventory.yml test-playbook.yml
# Cleanup
./manage-platform.sh -h magic proxmox_vm remove -e vm_vmid=500
Collection Components¶
The Solti-Platforms collection includes:
Roles¶
- proxmox_template: Creates cloud-init enabled VM templates
- proxmox_vm: Creates and manages VMs from templates
- platform_base: Base platform configuration
- linode_instance: Linode cloud management
- k3s_control: K3s control plane
- k3s_worker: K3s worker nodes
Management Scripts¶
- manage-platform.sh: High-level platform operations (build, create, remove)
- platform-exec.sh: Task-level execution for debugging
Supported Distributions¶
| Distribution | VMID Range | Status |
|---|---|---|
| Rocky Linux 9 | 9000-9999 | Production |
| Rocky Linux 10 | 9000-9999 | Production |
| Debian 12 (Bookworm) | 9000-9999 | Production |
| Debian 13 (Trixie) | 9000-9999 | Ready |
Templates are assigned VMIDs in the 9000-9999 range. VMs are assigned VMIDs in the 500-8999 range by default.
Integration with Other Collections¶
Solti-Platforms integrates with:
- solti-monitoring: Deploy monitoring agents to created VMs
- solti-containers: Run containerized services on platforms
- solti-ensemble: Shared infrastructure services
Next Steps¶
Continue to the Quick Start to create your first template and VM, or read the Architecture Overview to understand how the roles work together.