L’aboutissement de mon projet : Autodeploy-web

L’aboutissement de mon projet : Autodeploy-web

Bonjour à tous ! Aujourd’hui, j’ai vraiment hâte de vous présenter l’aboutissement d’un projet qui me tient à cœur depuis plusieurs mois : AutoDeploy Web, une interface web complète pour déployer vos Veeam Software Appliance sans jamais toucher une ligne de PowerShell.

Si vous n’avez pas suivi mes vidéos précédentes, aucun souci : cette version est justement pensée pour être accessible à tout le monde. Pas besoin de script, pas besoin de mettre les mains dans le cambouis. C’est du plug and play.

AutoDeploy Web, c’est quoi exactement ?

À l’origine, AutoDeploy était un script PowerShell permettant d’automatiser le déploiement de la Veeam Software Appliance. On pouvait déjà configurer une installation « unattended », mastériser des VSA, des infrastructure appliances, normaliser les noms, le réseau, les comptes… Bref, tout ce qui fait gagner un temps fou quand on déploie en série.

Mais je me suis dit qu’avec une interface web, on pouvait aller beaucoup plus loin. Et c’est là que ça devient vraiment intéressant : on peut désormais customiser les ISO ET déployer directement les machines, puis les câbler entre elles.

Concrètement, le projet cible aujourd’hui trois grands usages :

  • La personnalisation d’ISO (hostname, réseau, MFA, licences, comptes…)
  • Le déploiement d’architectures complètes : VSA, proxies, hardened repositories, ajout de VIA dans une infra existante
  • Le wiring, c’est-à-dire la connexion automatique de tous ces composants entre eux

Que ce soit pour vous, pour vos clients ou pour vos labs, ça fonctionne.

Étape 1 : personnaliser son ISO avec l’assistant guidé

Une fois le conteneur déployé, vous arrivez sur l’interface web et vous êtes accueilli par un assistant guidé. On n’en avait jamais fait, et franchement je suis content du résultat.

Vous choisissez votre ISO de base (la VSA 13.1 par exemple, et vous pouvez en uploader un nouveau à chaque sortie de version), puis vous déroulez toutes les étapes :

  • Le clavier, la time zone, le nom du serveur
  • DHCP ou adresse IP fixe, les serveurs DNS
  • Les mots de passe des comptes VSA et du domaine, avec possibilité de les générer automatiquement
  • Les tokens MFA et les codes de récupération
  • L’activation ou non du Security Officer

Et si vous voulez aller plus loin, il y a les options avancées : synchronisation NTP, external manager (Veeam ONE, VSPC), ajout d’agents, activation du node exporter… Bref, tout ce dont vous avez besoin pour normaliser vos déploiements.

À la fin, vous sauvegardez un preset et c’est terminé. Vous cliquez sur « Générer un ISO », le conteneur exécute le script avec les paramètres choisis, et vous récupérez votre ISO, votre fichier de configuration et votre grub personnalisé.

Petit détail qui compte : une fois que vous serez familier avec l’outil, vous n’aurez même plus besoin de passer par l’assistant. Vous retrouvez exactement les mêmes champs directement dans l’interface, sans wizard.

Le gain est énorme : plus besoin de booter chaque ISO à la main, de saisir toutes les informations en console, de créer les comptes admin et security officer, de configurer le MFA individuellement… Tout est industrialisé.

Étape 2 : déployer la topologie

Deuxième grande fonctionnalité, et là on passe au niveau supérieur : déployer directement ce que vous venez de configurer.

Dans la partie « Déploiement d’une topologie », vous composez votre infrastructure. Dans mon exemple, je pars sur une VSA, un proxy et un hardened repository. Pour chaque machine, vous choisissez le CPU, la RAM, le disque, et l’outil récupère automatiquement les IP des différents composants (que vous soyez en IP fixe ou en DHCP, aucun souci).

Côté hyperviseurs, le projet en gère six : Proxmox, vCenter, Hyper-V, Nutanix, XCP-ng et VMware Workstation. Pour être totalement transparent avec vous : Proxmox, Hyper-V et Workstation, je les ai testés et ça fonctionne. vCenter, j’ai eu deux retours positifs. Nutanix et XCP-ng, je n’ai jamais eu l’occasion de tester, donc si vous en avez, vos retours m’intéressent énormément !

Selon l’hyperviseur, vous renseignez vos identifiants, vous testez la connexion, et l’interface vous propose ensuite des menus déroulants pour le nœud, le stockage, le datacenter, le cluster, les ressources, le réseau…

Le remote kickstart : mon petit plaisir

Voici une fonctionnalité dont je suis assez fier. Plutôt que de repousser un ISO custom à chaque déploiement, vous pouvez demander à Linux de booter sur un kickstart distant, hébergé tout simplement par votre conteneur qui publie déjà une interface web.

Le principe est simple : vous gardez uniquement vos ISO de base dans les librairies de vos hyperviseurs, et l’outil modifie le grub en console pour pointer vers le kickstart distant. Vous économisez du temps et de l’espace disque, tout en gardant des déploiements parfaitement normalisés.

Un conseil au passage : pensez à cohérer votre timeout grub avec le délai d’attente configuré. Si vous mettez 4 secondes de timeout et que l’outil attend 10 secondes, il vous préviendra avec une belle alerte. Personnellement, je mets 60 secondes et tout se passe bien.

Étape 3 : le câblage automatique des composants

Et pour finir en beauté : le wiring. Là, l’outil passe par la REST API pour connecter tout votre petit monde ensemble.

Ça commence forcément par l’installation du fichier de licence (sans licence, impossible de faire booter une VSA ou d’ajouter quoi que ce soit). Ensuite, il déclare les repositories, enregistre le proxy VMware, ajoute le hardened repository… Et dans les options avancées, j’ai ajouté pas mal de choses : activation du node exporter, ajout de stockage S3 compatible avec différents endpoints, choix du montage, prise de possession du bucket.

Petit bonus que j’aime beaucoup : vous pouvez cliquer sur « Aperçu » et récupérer le code REST API généré, entièrement fonctionnel et lisible. Vous savez donc exactement ce qui va se passer, et vous pouvez le réutiliser ou l’ajuster à votre sauce.

Imaginez le scénario : vous customisez un ISO, vous l’envoyez à un prestataire ou à un collègue sur site. Une fois l’appliance démarrée, il lance simplement le script comme un grand, et tout se connecte tout seul. Vous n’avez rien eu à faire.

Un système de retry intelligent

Parce que dans la vraie vie, ça plante parfois (DNS, firewall, une interface capricieuse…), j’ai prévu un bouton « Relancer ». Et le script est autonome : s’il détecte que le proxy est déjà enregistré mais pas le repository, il ne va retraiter que le repository. Il ne touche pas à ce qui fonctionne déjà.

Vous pouvez aussi copier un déploiement pour le rejouer, ou tout simplement supprimer un déploiement complet, ce qui est très pratique en lab. Personnellement, j’ai dû en supprimer une quinzaine pendant mes tests !

Et si vous voulez aller plus loin, il y a un bouton pour ouvrir directement l’interface Swagger de votre VSA, avec authentification automatique via le compte Veeam admin.

Comment l’installer ?

Le projet est disponible sur GitHub, dans la partie AutoDeploy Web. Et l’installation, c’est le plus simple du monde : c’est un conteneur all-in-one. Vous téléchargez le docker-compose, vous le lancez, et c’est tout. Le conteneur crée lui-même tous les dossiers nécessaires.

https://github.com/BaptisteTellier/autodeploy-web

Je le fais tourner sur mon Synology, et ça fonctionne parfaitement. J’ai simplement copié-collé la configuration YAML avec les infos de base, et le dossier data se crée à la racine.

Dans les paramètres, vous pouvez régler le niveau de concurrence, ajuster le nombre de jobs conservés dans l’historique (20 par défaut), activer le logging, et même charger votre propre script AutoDeploy si vous l’avez customisé. Par défaut, c’est la version 2.8 qui est embarquée, celle validée avec la 13.1, mais vous pouvez aussi récupérer la branche dev si vous aimez vivre dangereusement.

Ah, et l’interface est disponible en français et en anglais.

One more thing : la version desktop

J’avais failli oublier cette petite surprise ! Si vous n’y connaissez rien en conteneurs, ou si vous ne voulez rien exposer sur votre réseau, le projet existe aussi en application desktop.

Vous allez dans les releases sur GitHub, vous téléchargez le zip de la dernière version, vous l’extrayez, et vous double-cliquez sur l’exécutable. C’est tout. Tout est embarqué : WSL, PowerShell, Xorriso… Aucune dépendance, aucune compétence particulière requise.

Vous retrouvez exactement la même interface : le wizard, la création d’ISO, les workspaces, les jobs. Seule différence : la version desktop ne fait pas de déploiement, uniquement la création d’ISO. Mais franchement, pour ceux qui veulent juste mastériser des appliances rapidement, c’est parfait.

https://github.com/BaptisteTellier/autodeploy-desktop

À vous de jouer !

Voilà, vous savez tout ! L’idée derrière ce projet, c’est vraiment d’éviter de se taper à la main des dizaines d’actions répétitives : se connecter dans chaque VBR, dérouler tous les wizards, ajouter les proxies, les hardened repos, configurer le security officer, rattacher un bucket… Tout ça se fait maintenant en quelques minutes, depuis une interface web.

Et je suis convaincu qu’on peut encore aller plus loin. Je me suis arrêté là parce que j’étais à court d’idées, mais si vous en avez, n’hésitez surtout pas à me les partager !

Testez-le, déployez-le, cassez-le, et dites-moi ce que vous en pensez. Si vous avez du vCenter, du Nutanix, du XCP-ng, faites-vous plaisir et donnez-moi vos retours. Et si vous rencontrez le moindre souci, ouvrez simplement une issue sur le GitHub, je m’occuperai de traiter tout ça.

J’espère sincèrement que ce projet vous plaira et qu’il vous fera gagner un temps précieux. Je vous souhaite à tous une excellente journée, et à très vite !

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.