Skip to content

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:

  1. Downloading cloud images manually
  2. Importing disks with qm importdisk
  3. Configuring cloud-init settings
  4. Managing VMID conflicts
  5. Tracking which templates exist
  6. 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:

vm_template_distribution: rocky9
# Result: rocky9-260125 (auto-named, auto-VMID)

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.