Applications/infra/proxmox.md
2024-04-03 22:04:13 +02:00

8.9 KiB
Raw Permalink Blame History

Proxmox Cheat-Sheet

Proxmox Virtual Environment (Proxmox VE or PVE) is a hyper-converged infrastructure open-source software. It is a hosted hypervisor that can run operating systems including Linux and Windows on x64 hardware. It is a Debian-based Linux distribution with a modified Ubuntu LTS kernel and allows deployment and management of virtual machines and containers. Proxmox VE includes a web console and command-line tools, and provides a REST API for third-party tools. Two types of virtualization are supported: container-based with LXC (starting from version 4.0 replacing OpenVZ used in version up to 3.4, included), and full virtualization with KVM. It includes a web-based management interface.

Proxmox VE is licensed under the GNU Affero General Public License, version 3.

Repository: https://git.proxmox.com Website: https://pve.proxmox.com

VM Management

Command Command Description
qm list list VMs
qm create VM_ID Create or restore a virtual machine.
qm start VM_ID Start a VM
qm suspend VM_ID Suspend virtual machine.
qm shutdown VM_ID Shutdown a VM
qm reboot VM_ID Reboot a VM
qm reset VM_ID Reset a VM
qm stop VM_ID Stop a VM
qm destroy VM_ID Destroy the VM and all used/owned volumes.
qm monitor VM_ID Enter Qemu Monitor interface.
qm pending VM_ID Get the virtual machine configuration with both current and pending values.
qm sendkey VM_ID YOUR_KEY_EVENT [OPTIONS] Send key event to virtual machine.
qm showcmd VM_ID [OPTIONS] Show command line used to start the VM (debug info).
qm unlock VM_ID Unlock the VM
qm clone VM_ID NEW_VM_ID Clone a VM
qm migrate VM_ID TARGET_NODE Migrate a VM
qm status VM_ID Show VM status
qm cleanup VM_ID CLEAN_SHUTDOWN GUEST_REQUESTED Clean up resources for a VM
qm template VM_ID [OPTIONS] Create a Template
qm set VM_ID [OPTIONS] Set virtual machine options (synchronous API)

Cloudinit

Command Command Description
qm cloudinit dump VM_ID VM_TYPE Get automatically generated cloudinit config.
qm cloudinit pending VM_ID Get the cloudinit configuration with both current and pending values.
qm cloudinit update VM_ID Regenerate and change cloudinit config drive.

Disk

Command Command Description
qm disk import VM_ID TARGET_SOURCE TARGET_STORAGE Import an external disk image as an unused disk in a VM.
qm disk move VM_ID VM_DISK [STORAGE] [OPTIONS] Move volume to different storage or to a different VM.
qm disk rescan [OPTIONS] Rescan all storages and update disk sizes and unused disk images.
qm disk resize VM_ID VM_DISK SIZE [OPTIONS] Extend volume size.
qm disk unlink VM_ID --IDLIST STRING [OPTIONS] Unlink/delete disk images.
qm rescan Rescan volumes.

Snapshot

Command Command Description
qm listsnapshot VM_ID List all snapshots.
qm snapshot VM_ID SNAPNAME Snapshot a VM.
qm delsnapshot VM_ID SNAPNAME Delete a snapshot.
qm rollback VM_ID SNAPNAME Rollback a snapshot.
qm terminal VM_ID [OPTIONS] Open a terminal using a serial device.
qm vncproxy VM_ID Proxy VM VNC traffic to stdin/stdout.

Misc

Command Command Description
qm guest cmd VM_ID COMMAND Execute Qemu Guest Agent commands.
qm guest exec VM_ID [EXTRA-ARGS] [OPTIONS] Executes the given command via the guest agent.
qm guest exec-status VM_ID PID Gets the status of the given pid started by the guest-agent.
qm guest passwd VM_ID USERNAME [OPTIONS] Sets the password for the given user to the given password.

PV, VG, LV Management

Command Command Description
pvcreate DISK-DEVICE-NAME Create a PV
pvremove DISK-DEVICE-NAME Remove a PV
pvs List all PVs
vgcreate VG-NAME DISK-DEVICE-NAME Create a VG
vgremove VG-NAME Remove a VG
vgs List all VGs
lvcreate -L LV-SIZE -n LV-NAME VG-NAME Create a LV
lvremove VG-NAME/LV-NAME Remove a LV
lvs List all LVs

Storage Management

Command Command Description
pvesm add TYPE STORAGE [OPTIONS] Create a new storage
pvesm alloc STORAGE your-vm-id FILENAME SIZE [OPTIONS] Allocate disk images
pvesm free VOLUME [OPTIONS] Delete volume
pvesm remove STORAGE Delete storage configuration
pvesm list STORAGE [OPTIONS] List storage content
pvesm lvmscan An alias for pvesm scan lvm
pvesm lvmthinscan An alias for pvesm scan lvmthin
pvesm scan lvm List local LVM volume groups
pvesm scan lvmthin VG List local LVM Thin Pools
pvesm status [OPTIONS] Get status for all datastores

Template Management

Command Command Description
pveam available List all templates
pveam list STORAGE List all templates
pveam download STORAGE TEMPLATE Download appliance templates
pveam remove TEMPLATE-PATH Remove a template
pveam update Update Container Template Database

Certificate Management

See the Proxmox Certificate Management cheat sheet.

Container Management

Command Command Description
pct list List containers
pct create YOUR-VM-ID OSTEMPLATE [OPTIONS] Create or restore a container
pct start YOUR-VM-ID [OPTIONS] Start the container
pct clone YOUR-VM-ID NEW-VM-ID [OPTIONS] Create a container clone/copy
pct suspend YOUR-VM-ID Suspend the container. This is experimental.
pct resume YOUR-VM-ID Resume the container
pct stop YOUR-VM-ID [OPTIONS] Stop the container. This will abruptly stop all processes running in the container.
pct shutdown YOUR-VM-ID [OPTIONS] Shutdown the container. This will trigger a clean shutdown of the container.
pct destroy YOUR-VM-ID [OPTIONS] Destroy the container (also delete all uses files)
pct status YOUR-VM-ID [OPTIONS] Show CT status
pct migrate YOUR-VM-ID TARGET [OPTIONS] Migrate the container to another node. Creates a new migration task.
pct config YOUR-VM-ID [OPTIONS] Get container configuration
pct cpusets Print the list of assigned CPU sets
pct pending YOUR-VM-ID Get container configuration, including pending changes
pct reboot YOUR-VM-ID [OPTIONS] Reboot the container by shutting it down and starting it again. Applies pending changes.
pct restore YOUR-VM-ID OSTEMPLATE [OPTIONS] Create or restore a container
pct set YOUR-VM-ID [OPTIONS] Set container options
pct template YOUR-VM-ID Create a Template
pct unlock YOUR-VM-ID Unlock the VM

Container Disks

Command Command Description
pct df YOUR-VM-ID Get the containers current disk usage
pct fsck YOUR-VM-ID [OPTIONS] Run a filesystem check (fsck) on a container volume
pct fstrim YOUR-VM-ID [OPTIONS] Run fstrim on a chosen CT and its mountpoints
pct mount YOUR-VM-ID Mount the containers filesystem on the host
pct move-volume YOUR-VM-ID VOLUME [STORAGE] [TARGET-VMID] [TARGET-VOLUME] [OPTIONS] Move a rootfs-/mp-volume to a different storage or to a different container
pct unmount YOUR-VM-ID Unmount the containers filesystem
pct resize YOUR-VM-ID YOUR-VM-DISK SIZE [OPTIONS] Resize a container mount point
pct rescan [OPTIONS] Rescan all storages and update disk sizes and unused disk images
pct enter YOUR-VM-ID Connect to container
pct console YOUR-VM-ID [OPTIONS] Launch a console for the specified container
pct exec YOUR-VM-ID [EXTRA-ARGS] Launch a command inside the specified container
pct pull YOUR-VM-ID PATH DESTINATION [OPTIONS] Copy a file from the container to the local system
pct push YOUR-VM-ID FILE DESTINATION [OPTIONS] Copy a local file to the container

Web GUI

# Restart web GUI
service pveproxy restart

Resize Disk

Increase disk size

Increase disk size in the GUI or with the following command

qm resize 100 virtio0 +5G

Decrease disk size

Before decreasing disk sizes in Proxmox, you should take a backup!

  1. Convert qcow2 to raw: qemu-img convert vm-100.qcow2 vm-100.raw
  2. Shrink the disk qemu-img resize -f raw vm-100.raw 10G
  3. Convert back to qcow2 qemu-img convert -p -O qcow2 vm-100.raw vm-100.qcow2

Further information

More examples and tutorials regarding Proxmox can be found in the link list below: