Proxmox hat seinen Code angepasst, und ich musste nachziehen.
Motivation
Proxmox VE ist der Hypervisor in meinem Heimnetzwerk, und dadurch bewege ich mich ziemlich oft im Proxmox Interface.
Der Proxomx Code ist prinzipiell open source, aber die Firma dahinter hätte gerne dass man eine Subscription kauft. Was ich durchaus verstehe, da das deren Finanzierungsmodell ist.
Ich betreibe zur Zeit 6 CPU-Sockets, und beim akutellen Preis zahle ich mindestens 115€ pro Socket im Jahr, das macht also um die 60€ im Monat. Das ist mir für mein Heimnetzwerk zu viel, also kann und möchte ich das nicht zahlen, insbesondere da ich mir dadurch für mich nicht allzu viel Mehrwert verspreche. Also bleibe ich bei keiner Subscription - was für mein Heimnetzwerk in Ordnung ist.
Dann müsste ich aber damit leben, dass ich jedes Mal nach einer Subscription gefragt werde. Das möchte ich auch nicht…
Das Subscription Popup abschalten
Ich hatte in der Vergangenheit bereits ein entsprechendes Code Snippet. Im letzten Update hat Proxmox allerdings den Code ein bisschen verändert, und ich musste mein Snippet adaptieren. Ich habe also die Datei /etc/apt/apt.conf.d/proxmox-disable-subscription-nag
mit dem folgenden Inhalt erzeugt:
DPkg::Post-Invoke { "dpkg -V proxmox-widget-toolkit | grep -q '/proxmoxlib\.js$'; if [ $? -eq 1 ]; then { echo 'Removing subscription nag from UI...'; sed -i '/.*res\.data\.status.*/{s/\!//;s/active/NoMoreNagging/}' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; }; fi"; };
Das schaut wirklich nicht schön aus, aber im Wesentlichen passiert das Folgende:
- Falls das Package
proxmox-widget-toolkit
aktualisiert wurde, und insbesondere die Dateiproxmoxlib.js
verändert wurde, mach weiter. Sonst mach nichts. - Der
sed
Befehl ist ein bisschen schwierig zu verstehen. Im Wesentlichen wird zuerst eine Zeile gesucht, die so ausschaut:res.data.status.toLowerCase() !== 'active'
.- Diese Zeile kommt in einem
if
Statement vor, undres.data.status.toLowerCase()
ist der Status der Subscription. Hier steht also vermutlichactive
oder vielleichtinactive
oder etwas ähnliches drinnen. Insbesondere bin ich mir ziemlich sicher, dass'DoNotAsk'
nicht draufsteht. - Verändere also
!==
zu==
, und suche stat'active'
nach'DoNotAsk'
. - Dadurch wird die Condition in jedem Fall falsch sein, und das Subscription Popup verschwindet!
- Diese Zeile kommt in einem