← Back to list

kcli-vm-operations
by karmab
Management tool for virtualization and kubernetes platforms
⭐ 610🍴 164📅 Jan 23, 2026
SKILL.md
name: kcli-vm-operations description: Guides VM lifecycle operations with kcli. Use when creating, managing, or troubleshooting virtual machines across providers.
kcli VM Operations
VM Lifecycle Commands
Create VM
# From image
kcli create vm -i fedora40 myvm
# With parameters
kcli create vm -i centos9stream -P memory=4096 -P numcpus=4 -P disks=[20,50] myvm
# From profile
kcli create vm -p myprofile myvm
List VMs
kcli list vm # All VMs
kcli list vm -o yaml # YAML output
kcli list vm -o json # JSON output
VM Info
kcli info vm myvm # Full info
kcli info vm myvm -f ip # Specific field
kcli info vm myvm -o yaml # YAML format
Start/Stop/Restart
kcli start vm myvm
kcli stop vm myvm
kcli restart vm myvm
Delete VM
kcli delete vm myvm # With confirmation
kcli delete vm myvm --yes # Skip confirmation
kcli delete vm myvm --snapshots # Delete snapshots too
SSH Access
kcli ssh myvm # SSH as default user
kcli ssh -u root myvm # SSH as specific user
kcli ssh -l myvm # List SSH command only
Console Access
kcli console myvm # Graphical console (VNC/SPICE)
kcli console myvm --serial # Serial console
Disk Operations
# Add disk
kcli create disk -s 20 -p default myvm # 20GB disk
kcli create disk -s 50 --thin myvm # Thin provisioned
# Delete disk
kcli delete disk myvm-disk1 myvm
# List disks
kcli list disk
NIC Operations
# Add NIC
kcli create nic -n mynetwork myvm
# Delete NIC
kcli delete nic eth1 myvm
# Update NIC
kcli update nic -n newnetwork myvm --index 0
Snapshots
# Create snapshot
kcli create snapshot myvm mysnapshot
# List snapshots
kcli list snapshot myvm
# Revert to snapshot
kcli revert snapshot myvm mysnapshot
# Delete snapshot
kcli delete snapshot myvm mysnapshot
VM Configuration
Configuration Hierarchy
Parameters are resolved in order (later overrides earlier):
kvirt/defaults.py- Built-in defaults~/.kcli/config.ymldefault section- Provider-specific section in config.yml
- Profile definition (
~/.kcli/profiles.yml) - Plan file parameters
- Command-line
-Poverrides
Common Parameters
# Compute
numcpus: 2 # CPU count
memory: 512 # Memory in MB
cpumodel: host-model # CPU model
# Storage
pool: default # Storage pool
disks: # Disk configuration
- size: 20 # Size in GB
- size: 50
pool: otherpool
thin: true
# Network
nets: # Network configuration
- default # Simple: network name only
- name: mynet # Advanced: with options
ip: 192.168.1.10
netmask: 255.255.255.0
gateway: 192.168.1.1
mac: aa:bb:cc:dd:ee:ff
# OS Customization
image: fedora40 # Base image
cloudinit: true # Enable cloud-init
keys: # SSH public keys
- ssh-rsa AAAA... user@host
cmds: # Post-boot commands
- dnf -y update
- systemctl enable nginx
files: # Files to inject
- path: /etc/myconfig
content: |
key=value
Images
# List available images
kcli list image
# Download image
kcli download image fedora40
kcli download image centos9stream -p mypool
# Delete image
kcli delete image fedora40
# List all available images (from kcli catalog)
kcli list available-images
Profiles
Profiles in ~/.kcli/profiles.yml:
small:
numcpus: 1
memory: 1024
disks:
- size: 10
medium:
numcpus: 2
memory: 2048
disks:
- size: 20
webserver:
image: centos9stream
numcpus: 2
memory: 4096
nets:
- default
cmds:
- dnf -y install nginx
- systemctl enable --now nginx
Usage:
kcli create vm -p webserver myweb
Update Operations
# Update memory
kcli update vm myvm -P memory=8192
# Update CPUs
kcli update vm myvm -P numcpus=4
# Update metadata
kcli update vm myvm -P information="Production server"
Clone VM
kcli clone vm myvm myclone
kcli clone vm myvm myclone --full # Full clone (not linked)
Export VM
kcli export vm myvm # Export to image
kcli export vm myvm --image myimage # Custom image name
Troubleshooting
VM Won't Start
kcli -d start vm myvm # Debug output
sudo virsh list --all # Check libvirt state
sudo virsh start myvm # Try direct start
No IP Address
# Check DHCP is enabled on network
kcli info network default
# Check cloud-init completed
kcli ssh myvm
cat /var/log/cloud-init.log
SSH Connection Issues
# Get SSH command details
kcli ssh -l myvm
# Check VM has IP
kcli info vm myvm -f ip
# Try direct SSH
ssh -i ~/.kcli/id_rsa user@<ip>
Score
Total Score
80/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
○説明文
100文字以上の説明がある
0/10
✓人気
GitHub Stars 500以上
+10
✓最近の活動
1ヶ月以内に更新
+10
✓フォーク
10回以上フォークされている
+5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
✓タグ
1つ以上のタグが設定されている
+5
Reviews
💬
Reviews coming soon
