Veeam Software Appliance ISO Automation Tool

Veeam Software Appliance ISO Automation Tool

Bonjour à tous,

J’ai créé l’outil d’automatisation de personnalisation ISO pour les appliances logicielles Veeam afin d’automatiser et de standardiser la personnalisation des ISO des appliances Veeam, facilitant ainsi les déploiements en entreprise et permettant à toute personne de la communauté Veeam de réaliser des installations silencieuses, très reproductibles, en utilisant simplement PowerShell et un fichier de configuration.

Url du projet : https://github.com/BaptisteTellier/autodeploy/

Quoi : Automatisation avancée et personnalisation de l’ISO

Ce script est conçu pour personnaliser les fichiers ISO des appliances logicielles Veeam de manière automatisée et prête pour l’entreprise. Il intègre le chargement de configurations JSON, les fichiers de réponse ‘unattended’ Veeam (mot de passe, MFA, etc.), le réseau, la personnalisation VBR, une future intégration VCSP, une journalisation robuste des erreurs, ainsi que la modification ISO in-place et out-of-place — le tout depuis Windows via PowerShell et WSL.

Pourquoi : Reproductibilité, sécurité et efficacité

La personnalisation manuelle des appliances est chronophage, sujette aux erreurs et presque impossible à maintenir cohérente entre les environnements. Avec cet outil, mon objectif était de rendre les déploiements complexes aussi simples que d’éditer un fichier de configuration et de lancer une commande unique. L’utilisation de JSON garantit la cohérence de chaque déploiement, l’auditabilité de toutes les modifications, et que la sécurité (comme le MFA et les mots de passe forts) est intégrée dès le départ. Des fonctionnalités optionnelles comme la personnalisation VBR, la configuration syslog/serveur apportent une observabilité opérationnelle prête à l’emploi.

Avertissement : avant de modifier votre ISO

L’installation de paquets Linux supplémentaires, d’applications tierces, ou la modification des paramètres OS (autres que ceux contrôlables via le Veeam Host Management Console) sur les appliances Veeam n’est pas supportée. Le support client Veeam ne peut pas fournir d’assistance technique pour des appliances modifiées non supportées, en raison de l’impact imprévisible sur la sécurité, la stabilité et les performances de l’appliance.
https://www.veeam.com/kb4772

Comment : étape par étape pour utiliser le script

  1. Prérequis

    • Windows 10/11 ou Server 2016+ avec PowerShell 5.1+.

    • WSL (de préférence Ubuntu, car testé 😄, ou Debian) installé et accessible.

    • Au moins 14 Go d’espace disque libre pour le travail sur ISO, minimum 4 Go de RAM.

    • Politique d’exécution PowerShell permettant l’exécution de scripts.

    • xorriso installé dans WSL (sudo apt-get install xorriso, pour RHEL/Fedora : sudo yum install xorriso).

    • Placez l’ISO d’origine Veeam Appliance, le script PowerShell et le fichier de configuration JSON dans le même dossier.

  2. Configuration du fichier JSON

    Préparez un fichier JSON de configuration (ou utilisez l’exemple fourni dans le dépôt), en spécifiant notamment :

    • Le nom du fichier ISO source.

    • Le nom de l’ISO de sortie (le script ajoute _customized si vide).

    • Personnalisation in-place ou out-of-place (avec sauvegarde optionnelle).

    • Réseau (DHCP/statique, IP, DNS).

    • Fuseau horaire, disposition clavier, nom d’hôte.

    • Mots de passe et configuration MFA pour les comptes Veeam Admin et Security Officer.

    • Paramètres serveur NTP.

    • (Optionnel et non supporté) Déploiement node_exporter hors ligne et en ligne.

    • (Optionnel) Détails de connexion VCSP (pour v13.0.1+).

    • (Optionnel) Personnalisation VBR avec licence et configuration syslog.

  3. Exemple de bloc config JSON

  1. Lancement du script d’automatisation
    Dans le répertoire du script, lancez :
    .\autodeployppxity.ps1 -ConfigFile "votre-config.json"
    Le script lira la config, validera les paramètres (réseau, complexité des mots de passe, etc.), et personnalisera l’ISO selon les spécifications. Par défaut, il modifie l’ISO out-of-place, créant une nouvelle ISO. Pour modifier in-place, passez InPlace à true et activez éventuellement CreateBackup.

Si vous accepter de continuer, la personnalisation va commencer

  1. Fonctionnalités avancées et dépannage

Voir GitHub pour plus de détails

  1. Sécurité et validation

    • Les mots de passe pour les comptes veeamadmin et veeamso doivent respecter :

      • Minimum 15 caractères

      • 1 majuscule, 1 minuscule, 1 chiffre, 1 caractère spécial

      • Pas plus de 3 caractères consécutifs de même classe (ex : plus de 3 minuscules ou chiffres à la suite interdit)

      • Les mots de passe des deux comptes doivent être différents

    • Configuration NTP :
      Pour éviter les problèmes de synchronisation avec l’authentification multifactorielle, il est recommandé d’activer ntp.runSync=true.

    • Exigences MFA :
      La clé secrète MFA doit être une chaîne Base32 encodée de 16 chiffres.
      Le token de récupération doit être en hexadécimal (0-9, A-F). Il est possible de générer une chaîne adéquate avec la cmdlet New-Guid de PowerShell.

    • Compte Security Officer :
      Le compte SO offre un accès de niveau service séparé du compte administrateur pour renforcer la séparation des rôles.

  2. Options supplémentaires
    Utilisez les commandes PowerShell fournis sur GitHub pour générer les MFA ou tokens de récupération si besoin.
    Tous les fichiers (ISO, script, config, binaires node_exporter, licence) doivent être placés dans le dossier du script — aucun chemin complet ne doit être utilisé.

En utilisant cet outil, la personnalisation et le déploiement sécurisé des appliances Veeam avec des paramétrages prêts pour l’entreprise deviennent une opération de quelques minutes au lieu d’heures, avec des résultats entièrement audités, reproductibles et renforcés pour la production. N’hésitez pas à l’essayer et à contribuer ou donner votre avis via les issues GitHub !

À bientôt !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.