Skip to main content
RunBook Academy

Proxmox VEXXV · Proxmox Datacenter ManagerUnderstanding PDM

Installing PDM and connecting clusters

Intermediate⏱ ~30 minproxmox-datacenter-manager-adminproxmox-datacenter-manager-client

What you'll learn

  • Size and place a PDM host, including deciding whether it may live inside a cluster it manages
  • Choose between the ISO installer and a Debian Trixie base, and configure the correct repository
  • Explain the remote model: authid, token, node list, and what each field costs you when wrong
  • Describe how PDM establishes trust in a remote certificate, and recover a remote after a rotation
  • Avoid orphaning an API token on a cluster when removing or rebuilding PDM

Prerequisites

Verified against Proxmox VE 9.2.4 · Proxmox Backup Server 4.2.5 · Ceph Squid / Tentacle · Debian 13 (Trixie) · Linux kernel 7.0 (PVE 9.2 default) · 2026-08-12

Not yet marked complete on this device.

Installing PDM is the least interesting part of this lesson and takes about twenty minutes. The interesting part is what happens immediately afterwards, when you type an address, a username and a password into an “Add remote” dialog and, in doing so, create a durable credential on a production cluster that will still be there in three years.

Get the install wrong and you reinstall. Get the connection model wrong and you find out during a certificate renewal, or during a security review, or on the day someone deletes the PDM VM.

Sizing the host

PDM does very little computationally. It polls remotes, keeps RRD series, and serves an interface. The published requirements reflect that:

Evaluation minimumRecommended
CPU64-bit x86-64/AMD64, 1+ coreModern 64-bit Intel or AMD, 2+ cores
Memory1 GiB4 GiB minimum for the OS
Storagemore than 10 GB40 GB or more free
Disk resilienceHardware RAID with a battery-backed write cache, or a redundant ZFS setup
Networkone NICRedundant multi-gigabit NICs

The evaluation column is explicitly labelled as not for production. The recommended column carries the standard Proxmox warning that ZFS is not compatible with a hardware RAID controller — pick one.

There is only one 64-bit answer available, incidentally: the FAQ states PDM supports 64-bit CPUs only, with no future plans for 32-bit.

Where the PDM host lives

The requirements table tells you what to give PDM. It does not tell you where to put it, and that is the decision with consequences.

PDM is a small Debian host. The obvious place to run it is as a VM on one of your clusters, and that is entirely workable — with one property you must decide about deliberately rather than discover.

Two network facts constrain the placement. PDM’s operators reach it over HTTPS, and PDM reaches every remote over each remote’s own API — port 8006 for Proxmox VE, port 8007 for Proxmox Backup Server. A PDM host behind a firewall that permits inbound management traffic but not outbound connections to your cluster networks is a PDM host that shows every remote as unreachable.

Two ways to install

The ISO. Download the installer image from the Proxmox downloads page. It is a hybrid image: burn it to a DVD or write it to a USB flash drive of at least 2 GB. On Linux, dd bs=1M conv=fdatasync writes it; on Windows, Etcher works directly and Rufus needs DD mode; on macOS, convert with hdiutil first. The documentation names one tool that does not work at all — do not use UNetbootin with the Proxmox image.

The interactive installer partitions the disks, sets language, time zone and network, and installs everything. There is also an unattended path driven by an answer file with filter rules for disk and NIC selection, which is worth knowing about because PDM 1.1 can serve exactly those answer files to other Proxmox installations.

On top of Debian. After configuring the repositories, two meta-packages are available and the choice between them is not cosmetic:

Configuration changeminimal install, keeping the Debian kernel
apt update
apt install proxmox-datacenter-manager-container-meta
Configuration changefull install, Proxmox kernel with ZFS support
apt update
apt install proxmox-datacenter-manager-meta

The first keeps the current Debian kernel and installs the minimum. The second installs the Proxmox default kernel with ZFS support. If PDM is running as a VM or a container on storage that is already redundant underneath it, the Proxmox kernel buys you nothing and costs you a kernel to patch; if PDM is on bare metal and you want a redundant ZFS root, you need it.

Repositories

PDM follows the Proxmox pattern exactly: a Debian base repository plus one Proxmox repository, in deb822 .sources format under /etc/apt/sources.list.d/.

The enterprise repository is enabled by default and is the stable, recommended one:

# /etc/apt/sources.list.d/pdm-enterprise.sources
Types: deb
URIs: https://enterprise.proxmox.com/debian/pdm
Suites: trixie
Components: pdm-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg

The no-subscription repository is for testing and non-production use, and goes in /etc/apt/sources.list.d/proxmox.sources:

Types: deb
URIs: http://download.proxmox.com/debian/pdm
Suites: trixie
Components: pdm-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg

There is a third, pdm-test, which the documentation warns should only be used to test new features or bug fixes. It has no place in an estate you care about.

Two operational notes on Trixie. apt will complain about legacy repository definitions, and apt modernize-sources converts them. And upgrades must use apt full-upgrade, never apt upgrade: PDM uses a rolling release model on top of Debian, and apt upgrade cannot remove packages to satisfy dependencies, so it can leave a partially upgraded or broken package state.

Read-only / Safeconfirm SecureApt before trusting the repository
# sha256sum /usr/share/keyrings/proxmox-archive-keyring.gpg
136673be77aba35dcce385b28737689ad64fd785a797e57897589aed08db6e45  /usr/share/keyrings/proxmox-archive-keyring.gpg

After installation, the interface is at https://<pdm-host>:8443 and the initial login is root in the pam realm, using the password set during installation or the existing root password on a Debian-based install.

The remote model

Now the part that matters.

A remote is one entry in /etc/proxmox-datacenter-manager/remotes.cfg. There are two section types, pve and pbs, and both take the same four required properties plus one optional:

PropertyMeaningWhy it bites
typepve or pbs, default pveDetermines which API surface PDM expects
nodesA list of cluster node addresses; may be given more than onceA single-entry list makes one node a single point of failure for the whole remote
authidThe authentication ID PDM authenticates asThis is the identity every PDM action is attributed to in the cluster’s log
tokenThe access token secretStored on the PDM host, in cleartext, in a config file
web-urlOptional, for generating Web UI linksWhat “Open in PVE UI” points at; wrong here means a dead link, not a broken remote

Read the nodes row twice. PDM talks to a cluster through the node addresses you gave it. A cluster is quorate and healthy, one node is down for memory replacement, and if that node was the only address in the list, PDM reports the entire remote as unreachable. List several — ideally all of them, or at least three — and PDM has somewhere else to go.

Configuration changeadding a PVE cluster as a remote from the CLI
proxmox-datacenter-manager-admin remote add \
--id site-a \
--type pve \
--nodes 192.0.2.11 \
--nodes 192.0.2.12 \
--nodes 192.0.2.13 \
--authid 'pdm@pve!datacenter-manager' \
--token 'REPLACE_ME'
Read-only / Safewhat PDM thinks it is managing
# proxmox-datacenter-manager-admin remote list --output-format text

The companion commands are remote update <id> for changing the node list, authid, token or web URL; remote version <id> to confirm PDM can reach a remote and see what it is running; remote subscriptions for the fleet subscription picture; and remote remove <id>, which has a flag worth its own section.

Trust, and the certificate that will rotate

PDM validates a remote’s TLS certificate against the system certificate store. This produces two quite different operational worlds.

If the remote presents a publicly trusted certificate — for example one issued by Let’s Encrypt through ACME, which Part III covers configuring — then no further trust configuration is needed and certificate renewals are handled transparently. Nothing breaks in ninety days. This is the reason to do the ACME work.

If the remote presents the default self-signed Proxmox certificate, PDM pins the fingerprint you accepted when you added the remote. That pin is a snapshot of a certificate that has an expiry date.

When the remote renews or rotates that certificate, the pinned fingerprint no longer matches and every connection to that remote fails, with an error the interface and CLI both surface:

connection failed: Could not establish a TLS connection. Check whether the
fingerprint matches or the certificate on the remote is valid. OpenSSL Error:
error:0A000086:SSL routines:tls_post_process_server_certificate:certificate
verify failed

The most common cause is a legitimate renewal. It can also mean an expired or otherwise invalid certificate — or, if the change is unexpected, a man-in-the-middle attack. The documentation says to confirm the new certificate through a trusted channel before accepting it, and that instruction is the whole reason pinning exists. An operator who clicks accept reflexively has converted a security control into a dialog box.

Read-only / Safesee what the remote is presenting now
# proxmox-datacenter-manager-client remote probe-certificate site-a pve-01
Configuration changestore a verified fingerprint, or clear the pin
FPR='REPLACE_WITH_VERIFIED_FINGERPRINT'
proxmox-datacenter-manager-client remote set-fingerprint site-a pve-01 "$FPR"

# clearing the pin, for a remote that now uses a trusted certificate
proxmox-datacenter-manager-client remote set-fingerprint site-a pve-01

In the web interface, the equivalent is the Check Certificate action on the remote. PDM 1.1 improved it into a dialog that re-probes the configured nodes, lets you accept the new fingerprint per node or clear the stored pin, and applies the changes as one batch. It is reachable from the remotes list and is offered directly on a remote whose connection is currently failing.

The system journal on the PDM host records additional detail, including both the fingerprint the remote presented and the one that was expected — which is the evidence you compare against your trusted channel.

The token is the whole permission story

remote add needs an authid and a token. Everything PDM does on that cluster, forever, it does as that identity, bounded by that identity’s PVE-side privileges.

That has an immediate design consequence and a deferred one.

The immediate one: the PDM documentation does not prescribe a role for this token. It tells you the field exists and what shape the value takes. What privileges to grant is your decision, made once, on a cluster, in a pveum command — and it is the decision that determines whether a compromised PDM host can read your estate or reconfigure it.

The deferred one is lesson 5, which treats this properly. For now, three rules that hold regardless of how you resolve the design:

  1. A dedicated user and token per remote. Not root@pam. Not one token reused across clusters. One identity per remote means one thing to revoke, and a cluster’s task log that names PDM rather than naming root.
  2. Privilege separation on the PVE side. Part XV covers --privsep 1: the token carries its own ACLs rather than inheriting the user’s. That is what lets you grant the token less than the user has.
  3. Write down what you granted. In six months, “what can PDM do on site-B” must be answerable from a document, not from an archaeology session in user.cfg.

Key takeaways

  • PDM is small: 2 cores, 4 GiB, 40 GB is the recommended shape. The decision that matters is placement, and running PDM inside a cluster it manages is a circular dependency you may accept, but must accept on purpose.
  • The ISO is the recommended install. The Debian route assumes you have already got the base system, storage and network right.
  • Enterprise repository access needs no PDM subscription, but does need at least 80% of configured remote nodes carrying Basic or higher.
  • Upgrade with apt full-upgrade. apt upgrade can leave PDM in a partially upgraded state.
  • A remote is a node list, an authid, a token and a type. List several node addresses so one node’s maintenance does not take the remote offline.
  • remote remove deletes the token on the cluster by default. Keep that default, and remove remotes before destroying a PDM host.
  • A publicly trusted certificate on the remote means renewals are transparent. A self-signed one means PDM pins a fingerprint that will one day stop matching, per node, with a TLS error that also happens to be what an attack looks like.

Knowledge check

Knowledge check · 4 questions

  1. Q1. A five-node PVE cluster is added to PDM with a single node address in the remote configuration. That node is powered down for a DIMM replacement while the cluster stays quorate and healthy. What does PDM report?

  2. Q2. A remote whose PVE nodes use ACME-issued Let’s Encrypt (ACME) certificates will keep working across certificate renewals without any action in PDM, whereas a remote using the default self-signed certificates will break on renewal until the pin is updated.

  3. Q3. PDM is being decommissioned and its host will be deleted. Which of these leave a valid, privileged API token stranded on a production cluster? Select all that apply.

  4. Q4. An operator adds a lab cluster of twelve unsubscribed nodes to a PDM instance that previously managed twenty subscribed production nodes. Enterprise repository access on the PDM host stops working. Why?

Passing score: 75%. Answers are checked in this browser.