Retour au bureau

Dans le bureau : le petit serveur

Proxmox Automatisation

Dix machines, une seule commande.

Un script interactif pour créer des conteneurs LXC et des machines virtuelles en série sur Proxmox VE. Il détecte le réseau, propose les templates et les ISO disponibles, trouve un identifiant libre pour chaque machine et refuse toute valeur impossible avant de lancer la création.

Ce que c'est
Script Bash · administration système
Rôle
Développement
Période
18 → 19 novembre 2025
Statut
Open source
Stack
BashProxmox VEpctqmLXCKVM
352lignes de Bash
10versions en 2 jours
9fonctions
4règles de validation des IP

01Le point de départ

« Créer dix conteneurs dans l'interface web, c'est dix fois les mêmes écrans et les mêmes erreurs possibles. »

En cours, on monte régulièrement des maquettes réseau sur Proxmox : plusieurs conteneurs ou VM à configurer d'affilée. L'interface web est lente pour ça, et rien n'empêche de donner une IP déjà prise ou plus de RAM que le serveur n'en a.

Le script enchaîne les créations depuis le terminal avec pct et qm, et vérifie chaque réponse avant de toucher au serveur.

02Comment ça marche

Sous le capot.

Le script regarde ce qui est possible sur le serveur avant de proposer quoi que ce soit.

× N× N Menu 5 options Le serveur réseau, RAM, disque Validation chaque réponse pct create conteneurs qm create VM
  1. Un menu simple

    Créer des conteneurs, créer des VM, lister les templates, lister les ISO, ou quitter.

  2. Il regarde la machine

    Passerelle et broadcast lus sur vmbr0, RAM libre (avec 512 Mo de marge) et espace disque du stockage choisi.

  3. Il valide chaque réponse

    Nom, stockage, RAM, disque, IP : chaque valeur est vérifiée, et la question revient tant qu'elle n'est pas valide.

  4. Il crée en série

    Un identifiant libre est trouvé à partir de 100, puis pct create ou qm create lance la machine. On recommence pour la suivante.

✦À toi de jouer

Lance le script

Une simulation qui reprend le menu et les contrôles du vrai script. Tape tes réponses et appuie sur Entrée : essaie de donner l'IP de la passerelle, pour voir.

!Les défis

Ce qui a résisté.

Des identifiants qui ne se marchent pas dessus

ProblèmeDeux machines ne peuvent pas avoir le même identifiant, et conteneurs et VM partagent la même numérotation.

SolutionUne fonction part de 100 et avance tant que l'ID est pris par un conteneur (pct status) ou une VM (qm status).

Ne pas demander l'impossible

ProblèmeOn peut réclamer plus de RAM ou de disque que le serveur n'en a.

SolutionLe script lit la RAM libre (moins 512 Mo de marge) et l'espace du stockage choisi, et refuse toute valeur au-delà.

Des IP qui ne cassent pas le réseau

ProblèmeUne faute de frappe sur une IP peut couper la passerelle de tout le réseau.

SolutionChaque IP est contrôlée : bon format, octets ≤ 255, ni la passerelle, ni le broadcast, ni une adresse en .0.

⏱Journal de bord

Comment c'est arrivé.

  1. V1

    Création de conteneurs en série.

  2. V2 & V3

    Machines virtuelles, templates et ISO.

  3. V3.5.x

    Réseau détecté automatiquement et choix du stockage.

  4. V7

    Version finale avec vérification des ressources et des IP.

→Et ensuite

La suite du projet.

  • Lire un fichier de configuration pour monter une maquette complète sans questions.
  • Supprimer en une commande les machines d'une maquette terminée.

Astuce : les flèches ← → de ton clavier passent d'un projet à l'autre.