Proxmox VE 8.3 – własna modyfikacja okna Summary w konsoli GUI

Dostosowanie wyglądu okna Summary w konsoli GUI

Jeśli chcemy dostosować wygląd elementów w oknie Summary Proxmox GUI musimy edytować pliki:

  • /usr/share/perl5/PVE/API2/Nodes.pm
  • /usr/share/pve-manager/js/pvemanagerlib.js

Większość informacji takich jak temperatura CPU/Dysku czy informacje systemowe można łatwo dostosować używając skryptu PVE-mods.
Po każdej większej aktualizacji systemu należy poprawić powyższe pliki lub przywrócić je z kopii.
Po każdej zmianie w tych plikach należy zrestartować usługę pveproxy

systemctl restart pveproxy

PVE-mods czyli automatyczna zmiana wyświetlanych pozycji w oknie Summary

Skrypt do pobrania z tego adresu https://github.com/Meliox/PVE-mods

Ręczna zmiana wyglądu okna Summary

Linia ~ 497. Zmienić nazwę monitorowanego dysku, np. z / na /var gdzie są pliki maszyn wirtualnych Proxmox.

        $res->{systemInfo} = "Manufacturer: Intel(R) Client Systems | Product Name: NUC10i7FNK | Serial Number: GEFN01300183";

        my $dinfo = df('/var', 1);     # output is bytes

        $res->{rootfs} = {
            total => $dinfo->{blocks},
            avail => $dinfo->{bavail},
            used => $dinfo->{used},
            free => $dinfo->{blocks} - $dinfo->{used},
        };

Linia ~45049 . Zmienić opis wyświetlanego dysku

        {
            iconCls: 'fa fa-fw fa-hdd-o',
            itemId: 'rootfs',
            title: '/var ' + gettext('NVMe space'),
            valueField: 'rootfs',
            maxField: 'rootfs',
            renderer: Proxmox.Utils.render_node_size_usage,
        },

Linia ~ 45244. Zakomentować /* niepotrzebne informacje */

 {
            colspan: 2,
            title: gettext('Kernel Version'),
            printBar: false,
            // TODO: remove with next major and only use newish current-kernel textfield
            multiField: true,
            //textField: 'current-kernel',
            renderer: ({ data }) => {
                if (!data['current-kernel']) {
                    return data.kversion;
                }
                let kernel = data['current-kernel'];
                let buildDate = kernel.version.match(/\((.+)\)\s*$/)?.[1] ?? 'unknown';
                return `${kernel.sysname} ${kernel.release} (${buildDate})`;
            },
            value: '',
        },
        /*
        {
            colspan: 2,
            title: gettext('Boot Mode'),
            printBar: false,
            textField: 'boot-info',
            renderer: boot => {
                if (boot.mode === 'legacy-bios') {
                    return 'Legacy BIOS';
                } else if (boot.mode === 'efi') {
                    return `EFI${boot.secureboot ? ' (Secure Boot)' : ''}`;
                }
                return Proxmox.Utils.unknownText;
            },
            value: '',
        },
        */
        /*
        {
            itemId: 'version',
            colspan: 2,
            printBar: false,
            title: gettext('Manager Version'),
            textField: 'pveversion',
            value: '',
        },
        */
    ],