🧩 PROXMOX SINGLE NODE ADMINISTRATION GUIDE

🧭 Proxmox Single-Node Administration Guide

Author’s Note:
All paths and commands shown in this guide reflect a real working Proxmox setup.
You can safely adapt them for your own environment if your interface or IP layout differs.


βš™οΈ Introduction: Why Proxmox VE

Proxmox Virtual Environment (Proxmox VE) is an open-source virtualization platform that combines KVM (for virtual machines) and LXC (for lightweight containers) in a single, powerful web-based interface.

For homelabs, testing, or even small-scale production environments, Proxmox offers:

πŸ’‘ Tip: This guide focuses on a single-node setup, ideal for automation and homelab usage.
A follow-up post covers multi-node clustering and Ceph storage.


🧱 1. Installing Proxmox VE

Step 1. Download and Install

  1. Download the latest ISO from https://www.proxmox.com/en/downloads
  2. Boot the system and install using default guided options.

Step 2. Network Configuration During Install

Assign a static IP for management (e.g., 10.0.0.3), and note your chosen hostname (e.g., pve-node).

Step 3. Accessing the Web Interface

After installation, open your browser:

https://<your-proxmox-ip>:8006

Default user: root@pam


🧩 2. Initial Configuration

Disable Enterprise Repository (for non-subscription users)

sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/pve-enterprise.list
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
apt update && apt full-upgrade -y

Enable SSH and Configure Access

systemctl enable ssh
systemctl start ssh

You can now SSH in:

ssh [email protected]

🧰 3. User Management and Permissions

While root@pam is the default admin, best practice is to create a dedicated automation user for Terraform and Ansible integration later.

Create User

From the Proxmox Web UI:
Datacenter β†’ Permissions β†’ Users β†’ Add

Example:

Create API Token

Datacenter β†’ Permissions β†’ API Tokens β†’ Add
Associate it with your automation user and note the generated token ID and secret.

🧠 Pro Note: This token-based authentication allows Terraform to connect securely to the Proxmox API.


🧩 4. Working with LXC Containers

Proxmox supports Linux Containers (LXC) for lightweight, resource-efficient environments.

Create a Container via CLI

pct create 201 local:vztmpl/ubuntu-22.04-standard_22.04-2_amd64.tar.zst   -hostname test-lxc   -storage local-lvm   -rootfs local-lvm:8   -net0 name=eth0,bridge=vmbr0,ip=10.0.10.10/24,gw=10.0.10.1   -password

Manage Containers

Command Description
pct list List containers
pct start 201 Start container
pct exec 201 bash Execute shell
pct stop 201 Stop container
pct destroy 201 Delete container

πŸ’‘ Tip: Containers can share kernel resources and start in seconds compared to full VMs.


πŸ–₯️ 5. Managing Virtual Machines (KVM)

Create a New VM

qm create 101 --name ubuntu-vm --memory 2048 --net0 virtio,bridge=vmbr0
qm importdisk 101 ubuntu.qcow2 local-lvm
qm set 101 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-101-disk-0
qm start 101

Common VM Commands

Command Description
qm list List all VMs
qm start 101 Start VM
qm stop 101 Stop VM
qm snapshot 101 snap1 Create snapshot
qm destroy 101 Remove VM

⚠️ Caution: Always shut down VMs gracefully before destroying to prevent disk lock issues.


🌐 6. Networking in Proxmox

Proxmox uses Linux bridges to connect VMs and LXCs to physical networks.

Example /etc/network/interfaces

auto lo
iface lo inet loopback

auto eno1
iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
    address 10.0.0.3/24
    gateway 10.0.0.1
    bridge_ports eno1
    bridge_stp off
    bridge_fd 0

VLAN Tagging Example

auto vmbr0.10
iface vmbr0.10 inet static
    address 10.0.10.1/24
    vlan-raw-device vmbr0

πŸ’‘ Tip: Each container or VM can have its own VLAN tag (configured via tag= in Terraform or UI).

Useful Network Commands

ip a
brctl show
journalctl -u networking

πŸ’Ύ 7. Storage Management

List Available Storage

pvesm status

Add NFS Storage

pvesm add nfs backups 10.0.0.10:/mnt/backups

Backup Containers or VMs

vzdump 201 --storage local --compress zstd

Restore from Backup

pct restore 202 /var/lib/vz/dump/vzdump-lxc-201.tar.zst

🧠 Pro Note: For scheduled backups, use Datacenter β†’ Backup from the Web UI.


🧠 8. Maintenance and Troubleshooting

Check Service Status

systemctl status pvedaemon pveproxy pvestatd

Restart Proxmox Services

systemctl restart pve-cluster pvedaemon pveproxy

View Logs

journalctl -xe
tail -f /var/log/pve/tasks/index

System Update and Cleanup

apt update && apt full-upgrade -y
pveperf
apt autoremove -y

πŸ’‘ Tip: Run pveversion -v to confirm version consistency after updates.


βš™οΈ 9. Preparing for Automation (Terraform + Ansible)

This section bridges your Proxmox setup with the automation stack.

Enable API Access for Terraform

  1. Ensure your automation user (e.g., terraform@pve) exists.
  2. Create an API token under that user.
  3. Note down the token ID and secret β€” these will be referenced in terraform.tfvars.

Terraform connects via:

pm_api_url          = "https://<proxmox-ip>:8006/api2/json"
pm_api_token_id     = "terraform@pve!tf-token"
pm_api_token_secret = "<SECRET>"

Prepare for Ansible

Ensure SSH key authentication is working:

ssh automation@<container-ip>

This allows Ansible to run configuration playbooks (like system updates, tool installations, and user creation).

πŸ’‘ Tip: Keep your /home/automation/.ssh/id_rsa.pub consistent β€” Terraform injects this key into all new containers automatically.


🧾 10. Command Reference Cheat Sheet

Category Command Description
General pveversion -v Show version info
VMs qm list, qm start, qm stop, qm snapshot Manage virtual machines
Containers pct list, pct start, pct exec, pct stop Manage LXC containers
Storage pvesm status, pvesm add, vzdump Manage and backup storage
Network ip a, brctl show View network interfaces and bridges
System systemctl restart pvedaemon Restart core services

βœ… Summary

With this single-node Proxmox setup, you now have:

πŸ’‘ Next step: Integrate Terraform and Ansible to provision and configure containers automatically.
See the companion article: β€œTerraform + Ansible + Proxmox Automation Guide.”


πŸ”§ Bonus Tips


End of Guide β€” Proxmox Single Node Administration