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.
What this skill does
# 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:
```bash
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
1. Boot the VM with the Cloud-Init image
2. Configure hostname, network, and storage
3. Install required packages and applications
4. Apply security patches and hardening
5. Configure Cloud-Init for automation
6. Test all functionality thoroughly
### Step 3: Mark as Template
Once configuration is complete and tested:
```bash
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:
```bash
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
```bash
# 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 `cicustom` parameter 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
1. Create VM with base configuration
2. Boot from Cloud-Init ISO
3. Configure hostname, network, and disk
4. Install base packages: `curl wget vim git`
5. Apply security hardening
6. Shutdown VM gracefully
7. Mark as template with `update_vm_config`
8. Clone as needed for deployments
### Workflow: Update Existing Template
1. Clone template to temporary VM
2. Apply updates, patches, security fixes
3. Test thoroughly
4. Stop the test VM
5. Create new template from test VM
6. Delete old template and test VM
7. Update documentation with version
### Workflow: Kubernetes Cluster Deployment
1. Create and test RKE2 template (steps above)
2. Clone template 3 times for control plane nodes
3. Clone template 3 times for worker nodes
4. Boot cloned VMs
5. Configure networking (hostname, IPs via Cloud-Init)
6. Initialize RKE2 on control plane
7. Join worker nodes to cluster
8. 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 TerraformRelated in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.