[[./accueil| ↩ Retour à l'accueil du projet]]
====== 8) Script : Dupliquer une VM Conteneur ======

Ce document définit la structure logique et le comportement attendu du script chargé de cloner une instance ou un modèle de référence (ex: 'ynh_modele') vers un nouvel environnement de production étanche.

===== 1. Cinématique de Duplication =====

Lorsqu'il est sollicité depuis le [[./04_menu_principal|Menu Principal]], le script déroule les étapes suivantes :
  * **Saisie des paramètres :** Demande à l'administrateur le nom de l'instance source (le modèle à copier) et le nom de la nouvelle instance cible à créer.
  * **Vérification de sécurité :** S'assure que le nom cible est disponible et ne contient aucun caractère interdit par la charte de sécurité.
  * **Clonage des fichiers :** Effectue une copie conforme du système de fichiers de l'instance source vers la nouvelle destination. 

===== 2. Réinitialisation des Identifiants Uniques =====

Pour éviter tout conflit réseau ou logiciel avec l'instance d'origine, le script intervient immédiatement à l'intérieur de la nouvelle copie avant son premier démarrage :
  * **Changement du nom d'hôte :** Modifie le fichier '/etc/hostname' interne de la nouvelle instance pour refléter son nouveau nom.
  * **Régénération des adresses MAC :** Attribue une nouvelle adresse matérielle unique à l'interface réseau virtuelle.
  * **Attribution d'une nouvelle IP VPN :** Alloue la prochaine adresse IP disponible dans le fichier 'utilisateurs.db' et configure les nouvelles clés WireGuard spécifiques à cette instance clonée.

===== 3. Bilan Visuel & Journalisation =====

  * **Lancement initial :** Démarre automatiquement la nouvelle instance dupliquée pour valider sa stabilité.
  * **Affichage terminal :** Affiche un bilan visuel vert confirmant la réussite du clonage, la nouvelle adresse IP attribuée et le statut de démarrage.
  * **Traçabilité :** Consigne l'opération de duplication, le nom de la source, de la cible, et l'heure exacte dans '/var/log/vps-gateway.log'.

===== 4. Accès aux Ressources Techniques =====

Pour consulter le code source de ce script ou télécharger l'archive globale du projet :
➔ [[./12_telechargements_sources|🛠️ Aller au module 12) Téléchargements du projet et sources des scripts]]

[[./accueil| ↩ Retour à l'accueil du projet]]
