Featured image of post Proxmox VE / Proxmox Backup Server のアレを非表示にする

Proxmox VE / Proxmox Backup Server のアレを非表示にする

Summary

Proxmox VE と Proxmox Backup Server はサブスクリプションがあり登録することを推奨している(個人の感想)のでこのように、 WebGUI で apt update に相当する操作やログイン時にこの画面を見ることがあると思う。メンテナンス時などに6台の Proxmox VE を行き来するので邪魔に思ったので消してみる。

なお、3年以上運用していて普段は HomeLab を管理している Ansible Role にお任せであるw
今回の仕組みを使うと、この画面を表示する Javascript が書き換えられモーダルが表示されなくなる。 また、該当のファイルは proxmox-widget-toolkit というパッケージに含まれているため unattended-upgrades が走ってファイルの中身が書き戻ると SystemD PathChanged で /var/lib/apt/periodic/unattended-upgrades-stamp の更新を検知し再度書き換えが実施されるようにしている。これでほぼ導入すれば触る必要はなくなった。

導入

proxmox-widget-toolkit-disable-notice.service

Warning
Proxmox VE の場合と Proxmox Backup Server の場合で再起動させるプロセスが違うため注意が必要である。
  • Proxmox VE の場合

    /etc/systemd/system/proxmox-widget-toolkit-disable-notice.service
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    
    [Unit]
    Description=proxmox-widget-toolkit disable notices
    
    [Service]
    Type=oneshot
    ExecStart=/usr/bin/sed -Ezi.bak "s/res === null \\|\\| res === undefined \\|\\| \\!res \\|\\| res\\n\\t+\\.data\\.status\\.toLowerCase\\(\\) \\!== 'active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
    ExecStart=/usr/bin/systemctl restart pveproxy.service
    
    [Install]
    WantedBy=multi-user.target
  • Proxmox Backup Server の場合

    /etc/systemd/system/proxmox-widget-toolkit-disable-notice.service
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    
    [Unit]
    Description=proxmox-widget-toolkit disable notices
    
    [Service]
    Type=oneshot
    ExecStart=/usr/bin/sed -Ezi.bak "s/res === null \\|\\| res === undefined \\|\\| \\!res \\|\\| res\\n\\t+\\.data\\.status\\.toLowerCase\\(\\) \\!== 'active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
    ExecStart=/usr/bin/systemctl restart proxmox-backup-proxy.service
    
    [Install]
    WantedBy=multi-user.target

proxmox-widget-toolkit-disable-notice.path

/etc/systemd/system/proxmox-widget-toolkit-disable-notice.path
1
2
3
4
5
6
7
[Unit]
Description=proxmox-widget-toolkit disable notice

[Path]
PathChanged=/var/lib/apt/periodic/unattended-upgrades-stamp
[Install]
WantedBy=multi-user.target

systemd のリロードと enable

設定できたら start と enabled しておきましょう。

1
2
3
4
sudo systemctl daemon-reload
sudo systemctl start proxmox-widget-toolkit-disable-notice.path
sudo systemctl enable proxmox-widget-toolkit-disable-notice.path
sudo systemctl enable proxmox-widget-toolkit-disable-notice.service

テストは sudo unattended-upgrade --dry-run を実行するとファイルが書き換えられ、はずです。
Proxmox VE の画面だと Host > Updates > 「Refresh」を押すと最初の画面が表示されるはずですが、正しく反映されると表示されないはずです。

非表示の確認

書き換え結果

書き換えが実施されると下記の状態になる(Proxmox VE 8.1-4 の場合)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
> diff -u /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
--- /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak   2023-11-23 18:12:50.000000000 +0900
+++ /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js       2024-01-25 23:44:21.205572810 +0900
@@ -540,8 +540,7 @@
                },
                success: function(response, opts) {
                    let res = response.result;
-                   if (res === null || res === undefined || !res || res
-                       .data.status.toLowerCase() !== 'active') {
+                   if (false) {
                        Ext.Msg.show({
                            title: gettext('No valid subscription'),
                            icon: Ext.Msg.WARNING,
Built with Hugo
テーマ StackJimmy によって設計されています。