vm-template-creation
Create, configure, and manage VM templates in Proxmox. Build reusable VM images for rapid deployment of standardized environments, including Kubernetes clusters and managed applications.
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
VM Template Creation Skill
Create, manage, and deploy VM templates in your Proxmox environment for rapid, standardized infrastructure provisioning.
What this skill does
This skill enables you to:
- Prepare virtual machines from cloud images or custom configurations
- Convert configured VMs into templates for reuse
- Clone templates to create multiple instances
- Manage template configurations and updates
- Deploy standardized environments rapidly
- Maintain template consistency across deployments
- Create specialized templates for different workloads
- Update and version templates
- Manage template lifecycle
When to use this skill
Use this skill when you need to:
- Create template VMs for rapid deployment
- Prepare Ubuntu Cloud-Init compatible templates
- Deploy multiple identical VMs for Kubernetes clusters
- Build standardized application environments
- Automate VM provisioning workflows
- Maintain consistent infrastructure-as-code
- Support Infrastructure-as-Code (IaC) automation
- Create reusable templates for different projects
- Build CI/CD infrastructure templates
Available Tools
Core VM Management
-
create_vm_advanced- Create a VM with advanced configuration (disk, network, CD/DVD) -
update_vm_config- Update VM configuration and mark as template -
get_vm_config- Get full VM configuration details -
clone_vm- Clone a template VM to create instances -
delete_vm- Remove a VM or template
Supporting Tools
-
get_vm_status- Get VM status and resource usage -
get_vms- List all VMs on a node -
start_vm- Start a VM (for testing/configuration) -
stop_vm- Stop a running VM -
shutdown_vm- Gracefully shut down a VM
Template VM Creation Workflow
Step 1: Prepare Base VM
Create a new VM with desired base configuration:
create_vm_advanced(
node_name="pve2",
vmid=100,
name="ubuntu-22.04-template",
memory=2048,
cores=2,
sockets=1,
ide2="local:iso/jammy-server-cloudimg-amd64.iso",
sata0="local-lvm:50", # 50GB disk
net0="virtio,bridge=vmbr0"
)
Step 2: Install and Configure OS
- Boot the VM with the Cloud-Init image
- Configure hostname, network, and storage
- Install required packages and applications
- Apply security patches and hardening
- Configure Cloud-Init for automation
- Test all functionality thoroughly
Step 3: Mark as Template
Once configuration is complete and tested:
update_vm_config(
node_name="pve2",
vmid=100,
config={
"template": 1
}
)
Important: Once a VM is marked as template, it cannot be started directly. It can only be cloned.
Step 4: Clone from Template
Create instances from the template:
clone_vm(
node_name="pve2",
source_vmid=100,
new_vmid=101,
new_name="web-server-01",
full=true
)
Real-World Example: Rancher Kubernetes Template
Create Ubuntu Template for RKE2
# 1. Create base VM
create_vm_advanced(
node_name="pve2",
vmid=100,
name="ubuntu-rke2-template",
memory=4096, # 4GB for control plane
cores=4,
sockets=1,
ide2="local:iso/jammy-server-cloudimg-amd64.iso",
sata0="local-lvm:100", # 100GB for system + RKE2
net0="virtio,bridge=vmbr0"
)
# 2. Boot, configure, and install:
# - OS configuration
# - Cloud-Init setup
# - RKE2 dependencies (curl, wget, etc.)
# - System optimization
# 3. Mark as template
update_vm_config(
node_name="pve2",
vmid=100,
config={"template": 1}
)
# 4. Clone for Rancher Manager cluster
clone_vm(
node_name="pve2",
source_vmid=100,
new_vmid=101,
new_name="rancher-manager-1",
full=true
)
clone_vm(
node_name="pve2",
source_vmid=100,
new_vmid=102,
new_name="rancher-manager-2",
full=true
)
clone_vm(
node_name="pve2",
source_vmid=100,
new_vmid=103,
new_name="rancher-manager-3",
full=true
)
# 5. Clone for NPRD-Apps cluster
clone_vm(
node_name="pve2",
source_vmid=100,
new_vmid=201,
new_name="nprd-apps-1",
full=true
)
clone_vm(
node_name="pve2",
source_vmid=100,
new_vmid=202,
new_name="nprd-apps-2",
full=true
)
clone_vm(
node_name="pve2",
source_vmid=100,
new_vmid=203,
new_name="nprd-apps-3",
full=true
)
Template Configuration Options
Common Configuration Parameters
When creating or updating templates, you can set:
-
template=1- Mark VM as template (prevents direct boot) -
cores=N- Number of CPU cores -
sockets=N- Number of CPU sockets -
memory=NNNN- Memory in MB -
sata0="storage:size"- Primary disk -
net0="virtio,bridge=vmbr0"- Network configuration -
ide2="storage:iso/image.iso"- CD/DVD drive for installation
Cloud-Init Configuration
For Cloud-Init enabled templates:
- Set
cicustomparameter for custom Cloud-Init configs - Pre-stage user data for automatic configuration
- Use network metadata for DHCP or static IPs
- Enable serial console for debugging
Typical Workflows
Workflow: Create Standard Linux Template
- Create VM with base configuration
- Boot from Cloud-Init ISO
- Configure hostname, network, and disk
- Install base packages:
curl wget vim git - Apply security hardening
- Shutdown VM gracefully
- Mark as template with
update_vm_config - Clone as needed for deployments
Workflow: Update Existing Template
- Clone template to temporary VM
- Apply updates, patches, security fixes
- Test thoroughly
- Stop the test VM
- Create new template from test VM
- Delete old template and test VM
- Update documentation with version
Workflow: Kubernetes Cluster Deployment
- Create and test RKE2 template (steps above)
- Clone template 3 times for control plane nodes
- Clone template 3 times for worker nodes
- Boot cloned VMs
- Configure networking (hostname, IPs via Cloud-Init)
- Initialize RKE2 on control plane
- Join worker nodes to cluster
- Verify cluster health
Best Practices
Template Design
- Keep templates minimal (smaller disk = faster cloning)
- Pre-install common tools and dependencies
- Use Cloud-Init for network and host configuration
- Document template versions and purposes
- Include installation dates and applied patches
Security
- Keep templates patched and updated
- Remove sensitive data before templating
- Use strong default passwords during setup
- Enable SSH key-based authentication
- Disable unnecessary services
- Apply OS-level hardening
Performance
- Use virtio drivers for disks and network (better performance)
- Set appropriate memory/CPU for cloned VMs
- Use thin provisioning where possible
- Monitor template update frequency
Organization
- Use clear naming conventions:
distro-version-purpose - Document template contents and purpose
- Version templates systematically
- Maintain changelog for updates
- Remove old unused templates
- Tag templates with creation date
Testing
- Always test templates before deployment
- Boot cloned VMs to verify functionality
- Test network configuration with Cloud-Init
- Verify all installed packages work correctly
- Test scaling (clone multiple instances)
- Validate performance meets requirements
Example Questions
- "Create a template VM for Ubuntu 22.04 with RKE2"
- "Mark VM 100 as a template for reuse"
- "Clone template VM 100 to create 3 Kubernetes nodes"
- "What's the configuration of the Ubuntu template?"
- "Update the template to add Docker support"
- "Clone the template with custom hostname and IP"
- "Create a template for database servers"
- "Build a template for CI/CD runners"
Response Format
When using this skill, I provide:
- Clear step-by-step template creation instructions
- VM configuration commands ready to execute
- Cloning examples for your use case
- Configuration validation results
- Template status and details
- Recommendations for optimization
- Best practices guidance
Integration with Terraform
The MCP tools complement Terraform's telmate/proxmox provider:
- Use MCP to prepare and test templates interactively
- Use Terraform to clone templates at scale for production
- Use MCP to update template configurations
- Use MCP for troubleshooting template issues
- Combine for complete IaC automation
Limitations
- Templates cannot be booted directly (must be cloned)
- Large templates take longer to clone
- Network configuration happens post-clone via Cloud-Init
- Some fine-tuning may be needed per clone
- Disk image import requires manual steps (see Proxmox documentation)
Related Skills
- Virtual Machine Management - General VM lifecycle operations
- Cluster Management - Monitor Proxmox cluster health
- Disaster Recovery - Backup and restore templates
- Infrastructure as Code - Deploy with Terraform automation
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-01-20
- 索引更新时间
- 2026-01-28
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!