Virtualisation

PROXMOX : Désactiver le message You do not have valid subscription

Table des matières

proxmox_logo



Introduction



Proxmox Virtual Environment (PVE) est une solution de virtualisation libre basée sur l'hyperviseur Linux KVM, et offre aussi une solution de containers avec LXC.

La popup "No Valid Subscription" est une notification qui s'affiche si vous n'avez pas de souscription valide (Enterprise) pour Proxmox.

subscription_proxmox



Nous allons voir dans cet article comment désactiver cette popup.
Cette astuce fonctionne pour Proxmox Virtual Environment (PVE) ET Proxmox Backup Server (PBS).

Les modifications sont à refaire à chaque mise à jour.
En effet, le fichier que nous allons modifier sera écrasé par celui présent dans le paquet proxmox-widget-toolkit.


Testé avec succès pour les éditions suivantes : PVE 7.3 - PVE 7.4 - PVE 8

Désactiver la popup



Cette pop-up est générée par du Javascript via le fichier : /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
Ce fichier est utilisé par Proxmox Virtual Environment (PVE) et Proxmox Backup Server (PBS).

Avant de modifier ce fichier, on en réalise une copie de sauvegarde :
Code BASH :
cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak



Il suffit d'éditer ce fichier :
Code BASH :
vim /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js


Chercher la ligne contenant ceci (environ à la ligne 520 sur Proxmox 7.3) :
Code JAVASCRIPT :
.data.status.toLowerCase() !== 'active') {


On va modifier cette ligne pour ne rien faire dans ce cas (continuer le script de la section else du dessous) et mettre le bloc du dessous qui génère la popup dans un if toujours invalide :
Code JAVASCRIPT :
.data.status.toLowerCase() !== 'active') { orig_cmd(); } else if ( false ) {


Déconnectez-vous, et relancez pve-proxy (pour Proxmox Virtual Environment) et/ou proxmox-backup-proxy (pour Proxmox Backup Server) :
Code BASH :
systemctl restart pveproxy.service

Code BASH :
systemctl restart proxmox-backup-proxy.service


Rafraîchissez la page via Ctrl+F5 pour ignorer le cache du navigateur.
Reconnectez-vous et constatez que le message a disparu.


BONUS : Script à lancer à chaque mise à jour



Pour éviter de faire la manip manuellement, je vous propose un petit script à lancer manuellement.

Code BASH :
vi /root/remove-popup.sh


On y place le contenu suivant :

Code BASH :
#! /bin/bash
# Patch du fichier JS
sed -i.bak "s/.data.status.toLowerCase() !== 'active') {/.data.status.toLowerCase() !== 'active') { orig_cmd\(\); } else if ( false ) {/" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
# Restart PVE Web
systemctl restart pveproxy.service
# Restart PBS Web
systemctl restart proxmox-backup-proxy.service


Rendez le script exécutable :

Code BASH :
chmod +x /root/remove-popup.sh


Et voilà, à la prochaine mise à jour, vous naurez qu'à exécuter le script :

Code BASH :
/root/remove-popup.sh



Retour arrière en cas de problème



Si la page est blanche vous pouvez revenir en arrière via :
Code BASH :
mv /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js


Ou bien réémerger le paquet proxmox-widget-toolkit :
Code BASH :
apt reinstall proxmox-widget-toolkit


:magic:








ARCHIVES Désactiver la popup (Ancienne méthode )



Cette pop-up est générée par du Javascript mais est générée dans un fichier PERL : /usr/share/perl5/PVE/API2/Subscription.pm

Il suffit d'éditer ce fichier :
Code BASH :
vim  /usr/share/perl5/PVE/API2/Subscription.pm


Chercher la ligne contenant ceci (environ à la ligne 117 sur Proxmox 7.3) :
Code PERL :
status => "notfound",


Et de placer la variable status à Active :
Code PERL :
status => "active",


Déconnectez-vous, et relancez pve-proxy :
Code BASH :
systemctl restart pveproxy.service


Rafraîchissez la page via Ctrl+F5 pour ignorer le cache du navigateur.
Reconnectez-vous et constatez que le message a disparu.

ARCHIVES BONUS : Script à lancer à chaque mise à jour (Ancienne méthode )



Pour éviter de faire la manip manuellement, je vous propose un petit script à lancer manuellement.

Voici la commande onliner à lancer dans un shell si vous voulez (car à chaque mise à jour du paquet de proxmox, le fichier PERL sera réinitialisé).

Code BASH :
vi /root/remove-popup.sh


On y place le contenu suivant :

Code BASH :
#! /bin/bash
sed -i.bak 's/notfound/active/g' /usr/share/perl5/PVE/API2/Subscription.pm && systemctl restart pveproxy.service


Rendez le script exécutable :

Code BASH :
chmod +x /root/remove-popup.sh


Et voilà, à la prochaine mise à jour, vous naurez qu'à exécuter le script :

Code BASH :
/root/remove-popup.sh


Cette page a été vue 19067 fois