Skip to content

Proxmox VE

Статус: доступен · пакет wg-flow-plugin-proxmox · провайдер proxmox · категория virtualization.

Плагин опрашивает Proxmox VE API (GET /api2/json/cluster/resources) и отдаёт в инвентарь ноды, виртуальные машины, контейнеры и хранилища. Учётные данные PVE остаются в YAML агента.

Форма в локальном UI строится из schema плагина:

Настройки source Proxmox: identity, интервал, URL
Identity, расписание, URL
Настройки source Proxmox: токен, TLS, Save settings
Аутентификация и TLS

Установка

Агент должен быть подключён к API.

bash
docker compose exec agent wg-flow-agent plugin install proxmox
# или
wg-flow-agent plugin install proxmox

После install откройте локальный UIPlugins → proxmox или допишите YAML вручную.

Что попадает в инвентарь

Объект PVEresource_typeprovider_resource_id
Nodeservernode/{имя}
QEMU VMinstanceqemu/{vmid}
LXCinstancelxc/{vmid}
Storagestoragestorage/{id}

Статусы: running / online / availableactive; stopped / offline / pausedstopped; иначе unknown. Сырой статус PVE дублируется в metadata.status.

У запущенных qemu/lxc плагин пытается взять сеть:

  • qemu — QEMU Guest Agent (agent/network-get-interfaces), иначе IP из config (netN / ip=);
  • lxc — /interfaces, иначе config.

В metadata: primary_ipv4, hostname = имя VM. Идентификатор ресурса не меняется на host:{ip} — остаётся qemu/{vmid} / lxc/{vmid}. Один и тот же хост, увиденный ещё и Prometheus, в инвентаре — два ресурса; их можно слить вручную в кабинете.

YAML

yaml
plugins:
  proxmox:
    enabled: true
    sources:
      - id: dc1
        provider_account: "proxmox-dc1"
        sync_interval_seconds: 300
        url: "https://pve.example.com:8006"
        auth_type: token
        api_token: "user@pam!wgflow=xxxxxxxx"
        verify_tls: false

Несколько кластеров — несколько sources с разными id и provider_account.

Поля source

ПолеОбязательноОписание
idдаКороткий ключ в логах (proxmox/dc1)
provider_accountдаТак площадка называется в инвентаре
sync_interval_secondsнетМинимум 300
urlдаБаза API, обычно https://host:8006
auth_typeдаtoken или password
api_tokenпри tokenСм. формат ниже
username / passwordпри passworduser@realm и пароль (ticket auth)
verify_tlsнетfalse, если сертификат самоподписанный

Формат API-токена

В Datacenter → Permissions → API Tokens создайте токен. В YAML — только user@pam!tokenid=secret, без префикса PVEAPIToken=.

Права: чтение кластера и, если нужны IP, guest agent. Для пилота достаточно роли с просмотром ресурсов.

Пароль (auth_type: password) — запасной путь; токен предпочтительнее.

Проверка

bash
wg-flow-agent status
wg-flow-agent dry-run

В dry-run JSON должны появиться provider: proxmox. Затем Sync now в UI или дождитесь интервала. В кабинете: Инвентарь с фильтром провайдера Proxmox.

Частые ошибки

СимптомЧто проверить
TLS / certificate verify failedverify_tls: false или свой CA
401 / CSRFтокен без PVEAPIToken=; user@pam!id=secret
Пустой collectURL без /api2/json; нода недоступна агенту
VM без IPGuest Agent не установлен / не running