安装 Proxmox VE 后的一些配置

VMware 被 Broadcom 收购后宣布不再提供免费的 VMware ESXi 了,于是就把家里的机器换到了 Proxmox VE。

安装过程很简单,直接把 ISO 镜像放进 Ventoy 里然后 boot 进去安装就行了。本文主要讲一下安装后的一些必要设置。比如修改存储库为非订阅、移除“无有效订阅”警告、在管理面板增加 CPU 温度显示。

修改存储库

首先是启用非订阅存储库和禁用企业存储库,在节点 pve 中选择 更新-存储库-添加 即可。记得把下面那个 Ceph Quincy 的非订阅库也加进去。添加完把 Enterprise 的几个库禁用掉即可。

移除登录面板时的“无有效订阅”警告

首先 cd /usr/share/javascript/proxmox-widget-toolkit
然后备份一下文件 cp -p proxmoxlib.js proxmoxlib.js.backup
接下来编辑 proxmoxlib.js 文件,搜索关键词 No valid subscription
Ext.Msg.show 给 Undefined 掉。

- Ext.Msg.show({
title: gettext('No valid subscription'),
icon: Ext.Msg.WARNING,

+ void({
title: gettext('No valid subscription'),
icon: Ext.Msg.WARNING,
proxmoxlib.js

保存后重启服务器即可。

添加 CPU 温度显示

对于家庭用户来说,CPU 温度不仅是显示机器负载/健康度的指标,更是关系到屋子里会不会热热的一个参数(我瞎说的,但夏天太热的话就要开空调了ww),但 PVE 居然没有默认提供 CPU 温度的监测,那就只能自己动手了。
首先安装 lm-sensors:apt install lm-sensors
接下来运行 sensors-detect 来扫描一下设备,一路按 enter 到最后输入 yes 保存即可
重启一下,然后执行一下 sensors -j 看看是否正常

root@pve:~# sensors -j
{
   "coretemp-isa-0000":{
      "Adapter": "ISA adapter",
      "Package id 0":{
         "temp1_input": 34.000,
         "temp1_max": 80.000,
         "temp1_crit": 100.000,
         "temp1_crit_alarm": 0.000
      },
      "Core 0":{
         "temp2_input": 34.000,
         "temp2_max": 80.000,
         "temp2_crit": 100.000,
         "temp2_crit_alarm": 0.000
      },
      "Core 1":{
         "temp3_input": 32.000,
         "temp3_max": 80.000,
         "temp3_crit": 100.000,
         "temp3_crit_alarm": 0.000
      },
      "Core 2":{
         "temp4_input": 33.000,
         "temp4_max": 80.000,
         "temp4_crit": 100.000,
         "temp4_crit_alarm": 0.000
      },
      "Core 3":{
         "temp5_input": 31.000,
         "temp5_max": 80.000,
         "temp5_crit": 100.000,
         "temp5_crit_alarm": 0.000
      }
   },
Bash

看起来非常正常,接下来 cd /usr/share/perl5/PVE/API2/
备份一下 Nodes.pm 文件:cp -p Nodes.pm Nodes.pm.backup
然后编辑 Nodes.pm 找到 my $dinfo 字段,加入 $res->{thermalstate} = sensors -j;
完成后的文件应该是下面这样的

        $res->{pveversion} = PVE::pvecfg::package() . "/" .
            PVE::pvecfg::version_text();

        $res->{thermalstate} = `sensors -j`;

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

然后备份一下要修改的文件(不 cd 了,省事) cp -p /usr/share/pve-manager/js/pvemanagerlib.js /usr/share/pve-manager/js/pvemanagerlib.js.backup
然后编辑 pvemanagerlib.js 搜索关键词 itemId: 'load', ,在这个块下面添加以下内容(仅限 Intel 用户,AMD 用户请执行 sensors -j 后查看对应的 CPU 温度参数并修改为对应的路径)

        {
            itemId: 'thermal',
            printBar: false,
            iconCls: 'fa fa-fw fa-thermometer-half',
            title: gettext('Temperature CPU'),
            textField: 'thermalstate',
            renderer: function(value) {
                let objValue = JSON.parse(value);
                let pkg0 = objValue["coretemp-isa-0000"]["Package id 0"]["temp1_input"];
                return `${pkg0} °C`;
            }
          },
/usr/share/pve-manager/js/pvemanagerlib.js

编辑完成后应该是下面这样

        {
            itemId: 'load',
            iconCls: 'fa fa-fw fa-tasks',
            title: gettext('Load average'),
            printBar: false,
            textField: 'loadavg',
        },
        {
            itemId: 'thermal',
            printBar: false,
            iconCls: 'fa fa-fw fa-thermometer-half',
            title: gettext('Temperature CPU'),
            textField: 'thermalstate',
            renderer: function(value) {
                let objValue = JSON.parse(value);
                let pkg0 = objValue["coretemp-isa-0000"]["Package id 0"]["temp1_input"];
                return `${pkg0} °C`;
            }
          },
/usr/share/pve-manager/js/pvemanagerlib.js

保存后重启一下 webUI:systemctl restart pveproxy
然后清除一下浏览器缓存,完成后的界面应该是这样的

参考资料

DeskMini H470にProxmox VE8.0をインストールする
[Tuto] Afficher la température CPU dans Proxmox VE 8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注