
Proxmox VE Helper-Scripts : derrière ce nom se cache une collection de plus de 500 scripts Bash prêts à l’emploi. Ils sont conçus pour faciliter l’administration de Proxmox VE et le déploiement d’applications par l’intermédiaire de conteneurs LXC ou de machines virtuelles.
L’utilisation de ces scripts facilite l’automatisation des tâches, en particulier pour le déploiement rapide d’applications. C’est particulièrement pratique pour déployer un environnement de développement rapidement : une seule commande suffit à déployer une application. En effet, chaque service dispose de son propre script Bash conçu pour Proxmox et qui permet de déployer une instance avec un service opérationnel.
Si vous désirez en savoir plus, regardez la vidéo ci-dessous ou poursuivez la lecture de cet article.
A lire également :
Que sont les Proxmox VE Helper-Scripts ?
Les Proxmox VE Helper-Scripts constituent une collection de scripts shell (développés en Bash) conçus pour interagir directement avec l’interface en ligne de commande de Proxmox. Ces scripts ont pour vocation principale d’automatiser le cycle de vie des conteneurs LXC (Linux Containers) et des machines virtuelles (VM).
Au lieu de télécharger manuellement un template de distribution Linux, de créer le conteneur, de configurer les interfaces réseaux, d’allouer l’espace de stockage, puis de mettre à jour le système avant d’installer un applicatif, le script se charge de l’ensemble de ces opérations. Le concept plaît : plus de 500 scripts sont disponibles et ils ont été utilisés plus de 2 millions de fois.
Ces scripts, référencés sur le site community-scripts.org et référencés sur GitHub, sont organisés par catégories : Docker, réseau, authentification, sécurité, sauvegarde, et j’en passe. Ce sont les sources officielles liées à ce projet : attention à ne pas tomber sur une autre page lors de vos recherches.
En parcourant ces catégories, vous pourrez visualiser des scripts pour :
Configurer Proxmox VE et en assurer la maintenance,
Déployer une application dans un conteneur LXC,
Déployer un système d’exploitation (OPNsense, par exemple) ou une application dans une machine virtuelle.
Utilisation d’un Helper-Script
Quand vous cliquez sur une application ou un service, vous aurez accès à la description, à la ligne de commande permettant de lancer l’installation ou la tâche, et à des informations supplémentaires pour en savoir plus. À chaque fois, je vous encourage à lire la section “NOTES”, elle donne des précisions sur le Helper-Script associé et les éventuelles subtilités. De plus, la section de droite nommée “DETAILS” est précieuse puisqu’elle indique :
La version déployée du service,
Un lien vers le site web de la solution et vers sa documentation,
Le fichier de configuration et le numéro de port (utile pour l’accès à l’interface web),
Le code source du script d’installation (avec aussi un lien vers la page sur GitHub),
Ce dernier point est important : avant d’exécuter un script provenant d’Internet sur votre serveur Proxmox VE, prenez le temps de le consulter ! Même si c’est une source de confiance, soyez vigilant : c’est une règle d’or.
Pour lancer l’opération, c’est simple : vous copiez-collez la ligne de code et vous l’exécutez sur votre serveur Proxmox, depuis le Terminal (local ou SSH). Néanmoins, en basculant sur le mode “Advanced”, vous pouvez ajuster la configuration du conteneur qui sera créé : CPU, RAM et disque. Par défaut, chaque service a une configuration prédéfinie, mais vous gardez la main.
Dans ce cas, des variables avec les nouvelles valeurs seront ajoutées de façon dynamique à la ligne de commande que vous devez exécuter. Par exemple :
var_ram=”8192″ var_disk=”32″ bash -c “$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/immich.sh)”
Les scripts s’exécutent via une commande de type bash -c associée à l’utilitaire curl chargé de récupérer le script Bash depuis GitHub (ou Gitea). Ainsi, cette commande récupère le code source brut et l’exécute. Un menu interactif s’affiche alors directement dans le terminal afin de vous guider pendant l’installation (sauf si vous passez par le “Generator”)
L’assistant propose plusieurs modes d’installation :
Default Install : ce mode applique des paramètres prédéfinis. Il alloue la RAM, le nombre de cœurs CPU et l’espace disque jugés adéquats par le développeur du script. L’adresse IP sera obtenue via DHCP. Ce mode convient pour des tests rapides.
Advanced Install : il est recommandé de choisir ce mode pour personnaliser le déploiement. En effet, il permet de définir manuellement l’ensemble de la configuration :
L’ID du conteneur (CT ID).
Le type de conteneur (Privilégié ou Non-privilégié).
Le mot de passe root de l’instance.
Les ressources matérielles allouées (Cœurs CPU, RAM, Swap).
Le volume de stockage à utiliser.
L’adresse IP statique, le masque de sous-réseau et la passerelle par défaut.
Le VLAN tag, utile si votre réseau est segmenté.
Etc…
User Defaults : il permet d’utiliser les valeurs par défaut définies par vous, l’utilisateur. Quand vous installez une application une première fois, vos choix sont stockés dans un fichier et ce dernier peut être réutilisé par la suite (vous conservez ainsi vos préférences).
Une fois les paramètres validés, le script télécharge l’image du système d’exploitation, configure l’instance, la démarre, puis exécute un script de post-installation à l’intérieur du conteneur pour installer l’application (ici, Docker).
L’installation s’effectue en totale autonomie et le retour console permet de suivre la progression des opérations. A la fin, quand une application est installée, vous aurez toujours l’URL d’accès, comme ici : http://192.168.110.13:2283.
Il suffit d’accéder à cette URL pour accéder à l’application ! Voyez par vous-même.
Le générateur de scripts personnalisés
Depuis le site officiel de ce projet, vous pouvez accéder à un générateur de scripts pour automatiser l’installation selon une approche sans surveillance. Il vous suffit de cliquer sur “Generator” dans le menu.
Vous choisissez le script à personnaliser, à savoir celui de l’application à déployer.
Vous définissez ensuite les ressources à attribuer à ce conteneur LXC ou à cette VM.
Puis, vous pouvez personnaliser tout le reste : ID de conteneur, nom d’hôte, mot de passe, pont réseau sur lequel se connecter, ID de VLAN ou encore les options comme le SSH, le GPU Passthrough et le Nesting.
Une fois la configuration effectuée via cette interface en ligne, vous obtenez une commande prête à l’emploi. Cette commande contient des variables préconfigurées qui sont le reflet des choix effectués via le formulaire du générateur.
Voici un exemple :
mode=generated var_ctid=”500″ var_hostname=”immich-itconnect” var_vlan=”10″ var_tags=”media” var_gpu=”yes” bash -c “$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/immich.sh)”
Si vous lancez la commande obtenue, l’installation sera lancée et vous n’aurez rien à faire ! Tout est automatique (vous noterez la présence de mode=generated).
Gérer la maintenance et les opérations d’administration
Les Helper-Scripts ne se limitent pas à la création d’instances. De nombreux scripts participent à la maintenance de l’hyperviseur et des conteneurs.
Script pour la post-installation de Proxmox VE
Il existe également des scripts destinés à configurer l’hôte Proxmox lui-même, en particulier après une nouvelle installation. Ces outils appelés “Post-Install Scripts” automatisent des tâches d’administration courantes et s’adressent à Proxmox VE, mais aussi Proxmox Mail Gateway et Proxmox Backup Server (PBS).
Dans le cas de Proxmox VE, le script nommé PVE Post Install effectue un ensemble d’actions :
La désactivation du message d’avertissement lié à l’absence de souscription commerciale (Enterprise Repository).
L’ajout des dépôts communautaires (No-Subscription Repository) pour permettre les mises à jour du système via apt.
La mise à jour du nœud Proxmox VE (paquets)
La désactivation des services inutiles si vous n’envisagez pas d’être en mode cluster (réversible)
Etc…
À chaque fois, vous avez le choix : vous gardez le contrôle. Le script n’impose rien.
Script de mise à jour des conteneurs LXC
Certains applicatifs hébergés en LXC ne disposent pas de mécanisme de mise à jour interne simple. Des scripts spécifiques permettent d’automatiser ce processus. En exécutant un script de mise à jour (souvent nommé update script), le système se connecte au conteneur, arrête les services concernés, télécharge la dernière version de l’application depuis son dépôt officiel, l’installe et redémarre le service, le tout en préservant les données de configuration de l’utilisateur.
Il y a en réalité deux catégories de scripts de mises à jour :
Les scripts pour mettre à jour l’OS dans les conteneurs LXC (ils ne touchent pas à l’application).
Les scripts pour mettre à jour l’application en elle-même.
Par exemple, le script PVE LXC Updater sert justement à mettre à jour le système d’exploitation. De son côté, le script PVE LXC Apps Updater met à jour les applications. Pour cela, il surveille les tags sur les conteneurs LXC afin de cibler les conteneurs avec le tag community-script ou proxmox-helper-scripts (par défaut, car c’est personnalisable).
Script de sauvegarde Proxmox VE
Un dernier cas d’usage et script que l’on peut citer : PVE Host Backup. Ce script permet aux utilisateurs de sauvegarder des données, tout en offrant la possibilité de sélectionner les fichiers et répertoires spécifiques à sauvegarder. Cette flexibilité lui permet une compatibilité large, qui va au-delà de Proxmox (merci Bash).
Dans le contexte de Proxmox VE, ce script facilite la sauvegarde des fichiers systèmes.
Conclusion
L’utilisation des Proxmox VE Helper-Scripts représente une méthode efficace pour rationaliser les déploiements de services en limitant les opérations manuelles et répétitives. Si vous aimez tester différentes applications, cela représentera un gain de temps ! Vous pouvez aussi vous inspirer de ces scripts pour coder vos propres scripts d’installation.
Veillez toujours à privilégier l’utilisation de conteneurs non privilégiés et à réviser le code source du script avant l’exécution. Ceci est particulièrement vrai pour les applications où il y a peu d’installations, bien que les Helper-Scripts soient largement utilisés et révisés par la communauté.
Ingénieur système et réseau, cofondateur d’IT-Connect et Microsoft MVP “Cloud and Datacenter Management”. Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
