proxmox-admin

安装量: 132
排名: #6555

安装

npx skills add https://github.com/bastos/skills --skill proxmox-admin

Proxmox VE Administration Overview Proxmox VE is a server virtualization platform built on Debian. It manages KVM virtual machines and LXC containers through a web UI or CLI tools. This skill covers CLI-based administration using qm (VMs), pct (containers), and supporting utilities. When to Use Creating, configuring, or managing KVM virtual machines Spawning and administering LXC containers Managing Proxmox storage, networking, or clustering Automating VM/container provisioning via scripts Troubleshooting Proxmox host or guest issues Not for: Web UI-only workflows (use the CLI equivalents below). Quick Reference Tool Purpose qm Manage KVM virtual machines pct Manage LXC containers pvesm Manage storage pvecm Manage cluster pveam Manage appliance/template downloads pvesh Access the Proxmox API from the shell pveperf Benchmark host performance VM Management with qm Creating a VM

Create a VM with ID 100

qm create 100 --name my-vm --memory 2048 --cores 2 --sockets 1 \ --net0 virtio,bridge = vmbr0 --ostype l26

Create with SCSI disk on local-lvm storage (32GB)

qm create 100 --name my-vm --memory 4096 --cores 4 \ --scsi0 local-lvm:32 --scsihw virtio-scsi-pci \ --net0 virtio,bridge = vmbr0 --ostype l26

Attach an ISO for installation

qm set 100 --cdrom local:iso/ubuntu-22.04-server.iso --boot order = ide2 VM Lifecycle Command Purpose qm start Start a VM qm shutdown Graceful ACPI shutdown qm stop Force stop (like pulling power) qm reboot Reboot a VM qm reset Hard reset qm suspend Suspend to RAM qm resume Resume from suspend qm destroy Delete VM and its disks qm destroy --purge Delete VM, disks, and all related jobs VM Configuration

Show current config

qm config 100

Modify hardware

qm set 100 --memory 8192 qm set 100 --cores 4 qm set 100 --balloon 2048

dynamic memory (min)

qm set 100 --cpu cputype = host

pass through host CPU features

qm set 100 --machine q35

use Q35 chipset (for PCIe passthrough)

Add/resize disks

qm set 100 --scsi1 local-lvm:50

add 50GB disk

qm disk resize 100 scsi0 +20G

grow existing disk by 20GB

Networking

qm set 100 --net0 virtio,bridge = vmbr0,tag = 10

VLAN tagged

qm set 100 --net1 virtio,bridge = vmbr1

second NIC

Cloud-init (for automated provisioning)

qm set 100 --ide2 local-lvm:cloudinit qm set 100 --ciuser admin --cipassword 'secret' qm set 100 --ipconfig0 ip = 10.0 .0.50/24,gw = 10.0 .0.1 qm set 100 --sshkeys ~/.ssh/authorized_keys qm set 100 --boot order = scsi0

EFI / UEFI boot

qm set 100 --bios ovmf --efidisk0 local-lvm:1,efitype = 4m,pre-enrolled-keys = 1

Serial console (headless)

qm set 100 --serial0 socket --vga serial0

PCI passthrough (GPU, NIC, etc.)

qm set 100 --hostpci0 0000:01:00.0,pcie = 1 Snapshots and Cloning

Create a snapshot

qm snapshot 100 before-upgrade --description "Before kernel upgrade"

List snapshots

qm listsnapshot 100

Rollback to snapshot

qm rollback 100 before-upgrade

Delete a snapshot

qm delsnapshot 100 before-upgrade

Clone a VM (full copy)

qm clone 100 101 --name cloned-vm --full

Clone as linked clone (shares base disk, faster)

qm clone 100 101 --name linked-vm Templates

Convert VM to template (irreversible)

qm template 100

Create VM from template (linked clone)

qm clone 100 200 --name from-template

Create VM from template (full clone)

qm clone 100 200 --name from-template --full Migration

Online migration to another node

qm migrate 100 node2 --online

Offline migration

qm migrate 100 node2 Monitoring

VM status

qm status 100

List all VMs

qm list

Show running processes/agent info

qm agent 100 ping qm agent 100 get-osinfo

Monitor interface (QEMU monitor)

qm monitor 100 Container Management with pct Creating a Container

Download a template first

pveam update pveam available --section system pveam download local debian-12-standard_12.2-1_amd64.tar.zst

Create container with ID 200

pct create 200 local:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst \ --hostname my-ct --memory 1024 --cores 2 \ --rootfs local-lvm:8 \ --net0 name = eth0,bridge = vmbr0,ip = dhcp \ --password 'secret' --unprivileged 1

Create with static IP

pct create 201 local:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst \ --hostname web-ct --memory 2048 --cores 2 \ --rootfs local-lvm:16 \ --net0 name = eth0,bridge = vmbr0,ip = 10.0 .0.51/24,gw = 10.0 .0.1 \ --nameserver 1.1 .1.1 --unprivileged 1 Container Lifecycle Command Purpose pct start Start container pct shutdown Graceful shutdown pct stop Force stop pct reboot Reboot container pct destroy Delete container and its volumes pct enter Open a shell inside the container pct exec -- Run a command inside the container pct console Attach to container console Container Configuration

Show config

pct config 200

Modify resources

pct set 200 --memory 4096 pct set 200 --cores 4 pct set 200 --swap 1024

Add mount point (bind mount from host)

pct set 200 --mp0 /mnt/data,mp = /data

Add additional storage volume

pct set 200 --mp1 local-lvm:50,mp = /var/lib/data

Networking

pct set 200 --net0 name = eth0,bridge = vmbr0,ip = 10.0 .0.60/24,gw = 10.0 .0.1 pct set 200 --net1 name = eth1,bridge = vmbr1,ip = dhcp

Features (nesting, FUSE, NFS)

pct set 200 --features nesting = 1 pct set 200 --features nesting = 1 ,fuse = 1 ,mount = nfs

DNS

pct set 200 --nameserver "1.1.1.1 8.8.8.8" --searchdomain example.com

Start on boot

pct set 200 --onboot 1 --startup order = 1 ,up = 30 Container Snapshots and Cloning

Snapshot

pct snapshot 200 clean-install

Rollback

pct rollback 200 clean-install

Clone

pct clone 200 201 --hostname cloned-ct --full Storage Management

List storage pools

pvesm status

List content of a storage

pvesm list local pvesm list local-lvm

Add storage (examples)

pvesm add dir my-backup --path /mnt/backup --content backup pvesm add nfs nfs-share --server 10.0 .0.5 --export /exports/pve --content images,vztmpl pvesm add lvm my-lvm --vgname my-vg --content rootdir,images pvesm add zfspool my-zfs --pool rpool/data --content rootdir,images

Remove storage

pvesm remove my-backup

Download ISO

wget -P /var/lib/vz/template/iso/ https://example.com/image.iso Networking

List network interfaces

cat /etc/network/interfaces

Common bridge configuration (in /etc/network/interfaces)

auto vmbr0

iface vmbr0 inet static

address 10.0.0.1/24

bridge-ports eno1

bridge-stp off

bridge-fd 0

Apply network changes

ifreload -a Cluster Management

Create a new cluster

pvecm create my-cluster

Join an existing cluster

pvecm add 10.0 .0.1

Show cluster status

pvecm status

List cluster nodes

pvecm nodes

Remove a node (run from a remaining node)

pvecm delnode nodename

Check quorum

pvecm expected 1

force quorum (dangerous, single-node recovery only)

Firewall

Enable/disable firewall at datacenter level

pve-firewall start pve-firewall stop pve-firewall status

Manage rules via config files

Datacenter: /etc/pve/firewall/cluster.fw

Node: /etc/pve/nodes//host.fw

VM/CT: /etc/pve/firewall/.fw

Backup and Restore

Backup a VM

vzdump 100 --storage local --mode snapshot --compress zstd

Backup a container

vzdump 200 --storage local --mode stop --compress zstd

Backup all guests

vzdump --all --storage local --mode snapshot --compress zstd --mailto admin@example.com

Restore a VM

qmrestore /var/lib/vz/dump/vzdump-qemu-100-*.vma.zst 100

Restore a container

pct restore 200 /var/lib/vz/dump/vzdump-lxc-200-*.tar.zst

Restore to different storage

qmrestore /var/lib/vz/dump/vzdump-qemu-100-*.vma.zst 100 --storage local-lvm Common Provisioning Patterns Cloud-Init VM from Template

1. Create base VM and install OS, then convert to template

qm template 9000

2. Clone and customize with cloud-init

qm clone 9000 110 --name web-server --full qm set 110 --ciuser deploy --sshkeys ~/.ssh/authorized_keys qm set 110 --ipconfig0 ip = 10.0 .0.110/24,gw = 10.0 .0.1 qm set 110 --nameserver 1.1 .1.1 qm start 110 Batch Create Containers for i in $( seq 1 5 ) ; do CTID = $(( 300 + i )) pct create $CTID local:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst \ --hostname "worker- ${i} " --memory 1024 --cores 2 \ --rootfs local-lvm:8 \ --net0 name = eth0,bridge = vmbr0,ip = 10.0 .0. $(( 60 + i )) /24,gw = 10.0 .0.1 \ --unprivileged 1 --start 1 done Import Disk Image (e.g., cloud image)

Download a cloud image

wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img

Import to a VM

qm importdisk 100 jammy-server-cloudimg-amd64.img local-lvm

Attach the imported disk

qm set 100 --scsi0 local-lvm:vm-100-disk-0 qm set 100 --boot order = scsi0 Troubleshooting Problem Solution VM won't start Check qm config , verify storage exists with pvesm status "TASK ERROR: can't lock file" rm /run/lock/qemu-server/lock-.conf (verify VM is not running first) Container has no network Check bridge exists: brctl show ; verify firewall rules Disk full on storage pvesm status to check usage; lvs for LVM thin pools Cluster quorum lost pvecm expected 1 on surviving node (single-node recovery only) Migration fails Ensure same CPU type or use --online with live migration; check network between nodes Backup fails with lock error qm unlock or pct unlock Slow disk I/O in VM Use virtio-scsi-pci controller with iothread=1 and discard=on Guest agent not responding Install qemu-guest-agent in the VM and enable: qm set --agent 1 Useful Paths Path Contents /etc/pve/ Cluster-wide config (pmxcfs) /etc/pve/qemu-server/.conf VM configuration files /etc/pve/lxc/.conf Container configuration files /etc/pve/storage.cfg Storage definitions /etc/pve/nodes/ Per-node configuration /var/lib/vz/ Default local storage root /var/lib/vz/template/iso/ ISO images /var/lib/vz/template/cache/ Container templates /var/lib/vz/dump/ Backup files /var/log/pve/tasks/ Task logs

返回排行榜