kcli-vm-operations
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesekcli VM Operations
kcli 虚拟机操作
VM Lifecycle Commands
虚拟机生命周期命令
Create VM
创建虚拟机
bash
undefinedbash
undefinedFrom image
From image
kcli create vm -i fedora40 myvm
kcli create vm -i fedora40 myvm
With parameters
With parameters
kcli create vm -i centos9stream -P memory=4096 -P numcpus=4 -P disks=[20,50] myvm
kcli create vm -i centos9stream -P memory=4096 -P numcpus=4 -P disks=[20,50] myvm
From profile
From profile
kcli create vm -p myprofile myvm
undefinedkcli create vm -p myprofile myvm
undefinedList VMs
列出虚拟机
bash
kcli list vm # All VMs
kcli list vm -o yaml # YAML output
kcli list vm -o json # JSON outputbash
kcli list vm # All VMs
kcli list vm -o yaml # YAML output
kcli list vm -o json # JSON outputVM Info
虚拟机信息
bash
kcli info vm myvm # Full info
kcli info vm myvm -f ip # Specific field
kcli info vm myvm -o yaml # YAML formatbash
kcli info vm myvm # Full info
kcli info vm myvm -f ip # Specific field
kcli info vm myvm -o yaml # YAML formatStart/Stop/Restart
启动/停止/重启
bash
kcli start vm myvm
kcli stop vm myvm
kcli restart vm myvmbash
kcli start vm myvm
kcli stop vm myvm
kcli restart vm myvmDelete VM
删除虚拟机
bash
kcli delete vm myvm # With confirmation
kcli delete vm myvm --yes # Skip confirmation
kcli delete vm myvm --snapshots # Delete snapshots toobash
kcli delete vm myvm # With confirmation
kcli delete vm myvm --yes # Skip confirmation
kcli delete vm myvm --snapshots # Delete snapshots tooSSH Access
SSH 访问
bash
kcli ssh myvm # SSH as default user
kcli ssh -u root myvm # SSH as specific user
kcli ssh -l myvm # List SSH command onlybash
kcli ssh myvm # SSH as default user
kcli ssh -u root myvm # SSH as specific user
kcli ssh -l myvm # List SSH command onlyConsole Access
控制台访问
bash
kcli console myvm # Graphical console (VNC/SPICE)
kcli console myvm --serial # Serial consolebash
kcli console myvm # Graphical console (VNC/SPICE)
kcli console myvm --serial # Serial consoleDisk Operations
磁盘操作
bash
undefinedbash
undefinedAdd disk
Add disk
kcli create disk -s 20 -p default myvm # 20GB disk
kcli create disk -s 50 --thin myvm # Thin provisioned
kcli create disk -s 20 -p default myvm # 20GB disk
kcli create disk -s 50 --thin myvm # Thin provisioned
Delete disk
Delete disk
kcli delete disk myvm-disk1 myvm
kcli delete disk myvm-disk1 myvm
List disks
List disks
kcli list disk
undefinedkcli list disk
undefinedNIC Operations
网卡操作
bash
undefinedbash
undefinedAdd NIC
Add NIC
kcli create nic -n mynetwork myvm
kcli create nic -n mynetwork myvm
Delete NIC
Delete NIC
kcli delete nic eth1 myvm
kcli delete nic eth1 myvm
Update NIC
Update NIC
kcli update nic -n newnetwork myvm --index 0
undefinedkcli update nic -n newnetwork myvm --index 0
undefinedSnapshots
快照
bash
undefinedbash
undefinedCreate snapshot
Create snapshot
kcli create snapshot myvm mysnapshot
kcli create snapshot myvm mysnapshot
List snapshots
List snapshots
kcli list snapshot myvm
kcli list snapshot myvm
Revert to snapshot
Revert to snapshot
kcli revert snapshot myvm mysnapshot
kcli revert snapshot myvm mysnapshot
Delete snapshot
Delete snapshot
kcli delete snapshot myvm mysnapshot
undefinedkcli delete snapshot myvm mysnapshot
undefinedVM Configuration
虚拟机配置
Configuration Hierarchy
配置层级
Parameters are resolved in order (later overrides earlier):
- - Built-in defaults
kvirt/defaults.py - default section
~/.kcli/config.yml - Provider-specific section in config.yml
- Profile definition ()
~/.kcli/profiles.yml - Plan file parameters
- Command-line overrides
-P
参数按以下顺序解析(后续配置覆盖前面的):
- - 内置默认值
kvirt/defaults.py - 中的默认部分
~/.kcli/config.yml - 中提供商特定的部分
config.yml - 配置文件定义()
~/.kcli/profiles.yml - 计划文件参数
- 命令行 覆盖参数
-P
Common Parameters
常用参数
yaml
undefinedyaml
undefinedCompute
Compute
numcpus: 2 # CPU count
memory: 512 # Memory in MB
cpumodel: host-model # CPU model
numcpus: 2 # CPU count
memory: 512 # Memory in MB
cpumodel: host-model # CPU model
Storage
Storage
pool: default # Storage pool
disks: # Disk configuration
- size: 20 # Size in GB
- size: 50 pool: otherpool thin: true
pool: default # Storage pool
disks: # Disk configuration
- size: 20 # Size in GB
- size: 50 pool: otherpool thin: true
Network
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
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
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
undefinedimage: 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
undefinedImages
镜像
bash
undefinedbash
undefinedList available images
List available images
kcli list image
kcli list image
Download image
Download image
kcli download image fedora40
kcli download image centos9stream -p mypool
kcli download image fedora40
kcli download image centos9stream -p mypool
Delete image
Delete image
kcli delete image fedora40
kcli delete image fedora40
List all available images (from kcli catalog)
List all available images (from kcli catalog)
kcli list available-images
undefinedkcli list available-images
undefinedProfiles
配置文件
Profiles in :
~/.kcli/profiles.ymlyaml
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 nginxUsage:
bash
kcli create vm -p webserver myweb~/.kcli/profiles.ymlyaml
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使用方法:
bash
kcli create vm -p webserver mywebUpdate Operations
更新操作
bash
undefinedbash
undefinedUpdate memory
Update memory
kcli update vm myvm -P memory=8192
kcli update vm myvm -P memory=8192
Update CPUs
Update CPUs
kcli update vm myvm -P numcpus=4
kcli update vm myvm -P numcpus=4
Update metadata
Update metadata
kcli update vm myvm -P information="Production server"
undefinedkcli update vm myvm -P information="Production server"
undefinedClone VM
克隆虚拟机
bash
kcli clone vm myvm myclone
kcli clone vm myvm myclone --full # Full clone (not linked)bash
kcli clone vm myvm myclone
kcli clone vm myvm myclone --full # Full clone (not linked)Export VM
导出虚拟机
bash
kcli export vm myvm # Export to image
kcli export vm myvm --image myimage # Custom image namebash
kcli export vm myvm # Export to image
kcli export vm myvm --image myimage # Custom image nameTroubleshooting
故障排查
VM Won't Start
虚拟机无法启动
bash
kcli -d start vm myvm # Debug output
sudo virsh list --all # Check libvirt state
sudo virsh start myvm # Try direct startbash
kcli -d start vm myvm # Debug output
sudo virsh list --all # Check libvirt state
sudo virsh start myvm # Try direct startNo IP Address
无IP地址
bash
undefinedbash
undefinedCheck DHCP is enabled on network
Check DHCP is enabled on network
kcli info network default
kcli info network default
Check cloud-init completed
Check cloud-init completed
kcli ssh myvm
cat /var/log/cloud-init.log
undefinedkcli ssh myvm
cat /var/log/cloud-init.log
undefinedSSH Connection Issues
SSH连接问题
bash
undefinedbash
undefinedGet SSH command details
Get SSH command details
kcli ssh -l myvm
kcli ssh -l myvm
Check VM has IP
Check VM has IP
kcli info vm myvm -f ip
kcli info vm myvm -f ip
Try direct SSH
Try direct SSH
ssh -i ~/.kcli/id_rsa user@<ip>
undefinedssh -i ~/.kcli/id_rsa user@<ip>
undefined