Обновить

Отчёт по виртуальным машинам Proxmox

К сожалению в бесплатной версии Proxmox VE нет отчётов и привычной для меня в Vmware Vsphere выгрузки данных по ВМ в CSV с выборкой нужных столбцов поэтому я написал небольшой и как мне кажется универсальный плейбук Ansible.

Пример отчёта
Пример отчёта

Ссылка: https://github.com/Leonid-Kanareykin/proxmox-vm-report

Описание:

Этот плейбук подключается ко всем кластерам и нодам Proxmox и получает подробную информацию о ВМ: группы Ansible со всеми дочерними группами (обычно: группа, DC, кластер), имя узла Proxmox, VMID, имя ВМ, статус питания, CPU (ядра), выделенная RAM (ГБ), используемая RAM (ГБ), размер всех дисков (ГБ), тип ОС, версия ОС (агент), пул, теги (включая тип ОС из конфига, версию ОС из агента QEMU, пул, теги), и формирует CSV-отчет с временной меткой. Скорость работы для 90 хостов и 3000 ВМ примерно 15 минут.

!!! Тестировалось с примером файла инвентаря в формате yaml:

 https://github.com/Leonid-Kanareykin/proxmox-vm-report/blob/main/inventory-example.yml

Ключевые возможности:

  • подключение по SSH к одному или нескольким хостам и кластерам из файла инвентаря yaml

  • генерация CSV-файла с группами Ansible, Узел, VMID, Имя ВМ, Статус, CPU (ядра), RAM выделено (ГБ), RAM использовано (ГБ), Размер всех дисков (ГБ), Тип ОС, Версия ОС (агент), Пул, Теги

  • получение информации из нескольких кластеров и хостов

  • не требуются API-ключи для упрощения генерации множества API-ключей в средах с большим количеством кластеров, поскольку скрипт использует вашу SSH-аккаунт и

  • команды командной строки вроде pvesh, которые на самом деле используют API-

  • параллельная обработка по ВМ на каждом узле (используя xargs -P)

  • на случай если агент QEMU недоступен и мы не можем получить версию ОС то происходит получение 'ostype' из конфига ВМ что бы понимать тип ОС

  • - конвертация значений памяти/дисков из байт в гигабайты (2 знака после запятой)

  • добавление строки заголовка с удобными для пользователя названиями колонок
    отсутствие временных файлов на управляющем узле – все собирается в памяти

Запуск по всему инвентарю:
ansible-playbook -i inventory-example.yml /playbooks/pve-vm-report-latest.yml

Запуск по некоторым кластерам или одному кластеру:
ansible-playbook -i inventory-example.yml /playbooks/pve-vm-report-latest.yml --limit proxmox_dc1_cluster1,cluster2_pve_dc2

Теги:
+10
Комментарии0

Публикации